diff --git a/.github/workflows/torrserver-temp.yml b/.github/workflows/torrserver-temp.yml new file mode 100644 index 000000000..a2c4fd324 --- /dev/null +++ b/.github/workflows/torrserver-temp.yml @@ -0,0 +1,33 @@ +name: torrserver-temp + +on: +# push: +# branches: +# - 'develop' + schedule: + - cron: '0 0 * * *' # At the end of every day + +jobs: + + build-forked-fixed-independed-images: + name: TorrServer image + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v2 + - name: Log into registry + run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin + + - name: Test Make + run: make + + - name: Docker Compose Update + run: make docker-compose-update + +################################################################################## + + - name: Build TorrServer + run: cd linux/ecosystem/torrserver && make build + + - name: Push TorrServer + run: cd linux/ecosystem/torrserver && make deploy diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..b544ba297 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "linux/advanced/redash/redash-repo"] + path = linux/advanced/redash/redash-repo + url = git@github.com:getredash/redash.git diff --git a/CHANGELOG.md b/CHANGELOG.md index fdc1f75b3..f974020e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,35 @@ ## Changelog ### 2021 +* `october-november` + * added `nginx:quic` image. UNSTABLE. + * added `redash:latest` image in to `advanced` pack. + * improved `Makefile`s. + * fixed `nextcloud` images. + * splited `nextcloud` images to `pure` and `patched` (`zipstreamer`) tags. + * added `torrserver` + * added `advanced` image of `vcsode server`. original image by [linuxserver/docker-code-server](https://github.com/linuxserver/docker-code-server). +* `september` + * added [ArekSredzki/electron-release-server](https://github.com/ArekSredzki/electron-release-server/) support. + * fully reworked `teamcity-agent` images. + * added `java 16` support to base images. + * moved images to `advanced` and `ecosystem` folders. + * migrated from `country code` to `httpredir` (more stable) official `debian` mirror. + * `nginx 1.21.3`. +* `august` + * splited `tc-agents` with `nodejs` + * fixed `PostgreSQL` images + * added `PostgreSQL 13` and `PostgreSQL 14`. `latest` tag symlinked to `14`. +* `july` + * nothing +* `june` + * migrated to `docker-compose` build-system. + * added older versions of `nginx`. +* `may` + * @kasthack was wrote docker-template generator for atlassian products + * was regenerated and updated *all* `jira` images with `5`, `6`, `7` and `8` versions. + * was regenerated and updated *all* `fisheye-crucible` images with `2`, `3` and `4` versions. + * all actual download links was get from [EpicMorg/atlassian-json](https://github.com/EpicMorg/atlassian-json) repo. + * asap will be updated and added all additional `atlassian` images. * `april` * updated `nextcloud` images * `[BREAKING CHANGES]` reorganized space - `linux` and `win32` folders diff --git a/DESCRIPTION.md b/DESCRIPTION.md new file mode 100644 index 000000000..fb86c58aa --- /dev/null +++ b/DESCRIPTION.md @@ -0,0 +1,58 @@ +# [![Activity](https://img.shields.io/github/commit-activity/m/EpicMorg/docker-scripts?label=commits&style=flat-square)](https://github.com/EpicMorg/docker-scripts/commits) [![GitHub issues](https://img.shields.io/github/issues/EpicMorg/docker-scripts.svg?style=popout-square)](https://github.com/EpicMorg/docker-scripts/issues) [![GitHub forks](https://img.shields.io/github/forks/EpicMorg/docker-scripts.svg?style=popout-square)](https://github.com/EpicMorg/docker-scripts/network) [![GitHub stars](https://img.shields.io/github/stars/EpicMorg/docker-scripts.svg?style=popout-square)](https://github.com/EpicMorg/docker-scripts/stargazers) [![Size](https://img.shields.io/github/repo-size/EpicMorg/docker-scripts?label=size&style=flat-square)](https://github.com/EpicMorg/docker-scripts/archive/master.zip) [![Release](https://img.shields.io/github/v/release/EpicMorg/docker-scripts?style=flat-square)](https://github.com/EpicMorg/docker-scripts/releases) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3658/badge)](https://bestpractices.coreinfrastructure.org/projects/3658) [![CodeScene System Mastery](https://codescene.io/projects/6535/status-badges/system-mastery)](https://codescene.io/projects/6535) [![GitHub license](https://img.shields.io/github/license/EpicMorg/docker-scripts.svg?style=popout-square)](LICENSE.md) [![Changelog](https://img.shields.io/badge/Changelog-yellow.svg?style=popout-square)](CHANGELOG.md) + +| Master | Develop | +|:-------------|:-------------| +| [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master-linux/master?label=build%20master-linux&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster-linux) | [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/develop-linux/develop?label=build%20develop-linux&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Adevelop-linux) +| [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master-win32/master?label=build%20master-win32&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster-win32) | [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/develop-win32/develop?label=build%20develop-win32&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Adevelop-win32) + +## Description +A collection of docker images for production use. This repo contains 2 types of images - `advanced` and `ecosystem`. We support `linux x86_64` docker engine (`Win64` is still in the ***testing*** stage). + +* `linux/advanced` folder contains improved images like `nextcloud` or `teamcity server`, `zabbix collection`, etc. These images just forked from original developers and patched a bit. +* `linux/ecosystem` folder contains images developed by our team like full `Atlassian Stack`, compilled `nginx`, `php`, `testrail` and othres. + +![](https://raw.githubusercontent.com/EpicMorg/docker-scripts/master/.github/logo.png) + +## Quick navigation for sub-repositories +Containers was Splited to another sub-repositories. Now current repo will be contain only fresh and latest versions of images. All older versions will be appeared in sub-repos. More fater building, less bad load to CI. + +| Bitbucket | Confluence | Jira | EpicMorg | +|-------------:|-------------:|:-------------|:-------------| +| [![atlassian-bitbucket-7](https://img.shields.io/badge/Atlassian-Bitbucket%207-brightgreen?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/bitbucket/7) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![confluence-7](https://img.shields.io/badge/Atlassian-Confluence%207-brightgreen?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/confluence/7) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![atlassian-jira-8](https://img.shields.io/badge/Atlassian-Jira%208-brightgreen?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/jira/8) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![Deprecated](https://img.shields.io/badge/EpicMorg-Deprecated-red?style=popout-square)](https://github.com/EpicMorgVault/docker-deprecated-images) [![GHA](https://img.shields.io/badge/build-none-lightgrey?style=flat-square)](https://github.com/EpicMorgVault/docker-deprecated-images) | +| [![atlassian-bitbucket-6](https://img.shields.io/badge/Atlassian-Bitbucket%206-brightgreen?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/bitbucket/6) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![confluence-6](https://img.shields.io/badge/Atlassian-Confluence%206-yellow?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/confluence/6) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![atlassian-jira-7](https://img.shields.io/badge/Atlassian-Jira%207-yellow?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/jira/7) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![Experimental](https://img.shields.io/badge/EpicMorg-Experimental-orange?style=popout-square)](https://github.com/EpicMorgVault/docker-experimental-images) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/testing/testing?label=build%20testing&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Atesting) | +| ` ` | [![confluence-5](https://img.shields.io/badge/Atlassian-Confluence%205-orange?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/confluence/5) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![atlassian-jira-6](https://img.shields.io/badge/Atlassian-Jira%206-orange?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/jira/6) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![NextCloud](https://img.shields.io/badge/EpicMorg-NextCloud%20Backports-yellow?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/nextcloud) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | +| ` ` | ` ` | [![atlassian-jira-5](https://img.shields.io/badge/Atlassian-Jira%205-red?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/jira/5) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![PostgreSQL](https://img.shields.io/badge/EpicMorg-PostgreSQL%20Backports-yellow?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/postgres) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | | + +# Some popular products [![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B81CUI4) + +| Application | Pulls | Notes +| ------ | ------ | ------ +| [![Atlassian Bitbucket](https://img.shields.io/badge/Atlassian%20Bitbucket--brightgreen.svg?style=popout-square)](https://www.atlassian.com/software/bitbucket/download) | [![](https://img.shields.io/docker/pulls/epicmorg/bitbucket.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/bitbucket/) | `Atlassian Bitbucket` server. You also can install `datacenter` edition. +| [![Atlassian Confluence](https://img.shields.io/badge/Atlassian%20Confluence--brightgreen.svg?style=popout-square)](https://www.atlassian.com/software/confluence/download) | [![](https://img.shields.io/docker/pulls/epicmorg/confluence.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/confluence/) | `Atlassian Confluence` server. You also can install `datacenter` edition. +| [![Atlassian Jira](https://img.shields.io/badge/Atlassian%20Jira--brightgreen.svg?style=popout-square)](https://www.atlassian.com/software/jira/download) | [![](https://img.shields.io/docker/pulls/epicmorg/jira.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/jira/) | `Atlassian Jira: Softrware` server. You also can install `servicedesk`, `core` or `datacenter` editions. +| [![Nginx Mainline](https://img.shields.io/badge/Nginx--brightgreen.svg?style=popout-square)](https://nginx.org/en/download.html) | [![](https://img.shields.io/docker/pulls/epicmorg/nginx.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/nginx/) | Mainline custom build by [EpicMorg Team](https://github.com/EpicMorg) with http2 support and some modules. +| [![Apache2](https://img.shields.io/badge/Apache2--brightgreen.svg?style=popout-square)](https://deb.sury.org/) | [![](https://img.shields.io/docker/pulls/epicmorg/apache2.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/apache2/ ) | Latest pure apache2. +| [![php7](https://img.shields.io/badge/php7--brightgreen.svg?style=popout-square)](https://deb.sury.org/) | [![](https://img.shields.io/docker/pulls/epicmorg/apache2.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/apache2/ ) | php 7.3 custom build by [Ondrej Sury](https://launchpad.net/~ondrej). Component of container above. +| [![nc](https://img.shields.io/badge/NextCloud--brightgreen.svg?style=popout-square)](https://hub.docker.com/_/nextcloud) | [![](https://img.shields.io/docker/pulls/epicmorg/nextcloud.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/nextcloud/ ) | Fixed `nextcloud:latest` build by [EpicMorg Team](https://github.com/EpicMorg) with benefits. +| [![zabbix-agent](https://img.shields.io/badge/Zabbix%20Agent--brightgreen.svg?style=popout-square)](https://github.com/zabbix/zabbix-docker) | [![](https://img.shields.io/docker/pulls/epicmorg/zabbix-agent.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/zabbix-agent/ ) | Fixed `zabbix/zabbix-agent:ubuntu-latest` build by [EpicMorg Team](https://github.com/EpicMorg) with benefits. +| [![zabbix-server](https://img.shields.io/badge/Zabbix%20Server--brightgreen.svg?style=popout-square)](https://github.com/zabbix/zabbix-docker) | [![](https://img.shields.io/docker/pulls/epicmorg/zabbix-server-mysql.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/zabbix-server-mysql/ ) | Fixed `zabbix/zabbix-server-mysql:ubuntu-latest` build by [EpicMorg Team](https://github.com/EpicMorg) with benefits. +| [![zabbix-web](https://img.shields.io/badge/Zabbix%20Web--brightgreen.svg?style=popout-square)](https://github.com/zabbix/zabbix-docker) | [![](https://img.shields.io/docker/pulls/epicmorg/zabbix-web-apache-mysql.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/zabbix-web-apache-mysql/ ) | Fixed `zabbix/zabbix-web-apache-mysql:ubuntu-latest` build by [EpicMorg Team](https://github.com/EpicMorg) with benefits. +| [![zabbix-java-gateway](https://img.shields.io/badge/Zabbix%20JavaGW--brightgreen.svg?style=popout-square)](https://github.com/zabbix/zabbix-docker) | [![](https://img.shields.io/docker/pulls/epicmorg/zabbix-java-gateway.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/zabbix-java-gateway/ ) | Fixed `zabbix/zabbix-java-gateway:ubuntu-latest` build by [EpicMorg Team](https://github.com/EpicMorg) with benefits. +| [![teamcity-agent](https://img.shields.io/badge/TeamCity%20Agent--brightgreen.svg?style=popout-square)](https://github.com/JetBrains/teamcity-docker-agent) | [![](https://img.shields.io/docker/pulls/epicmorg/teamcity-agent.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/teamcity-agent/ ) | Custom build by [EpicMorg Team](https://github.com/EpicMorg) with benefits. +| [![qbittorrent](https://img.shields.io/badge/qBittorrent--brightgreen.svg?style=popout-square)](https://github.com/qbittorrent/qBittorrent) | [![](https://img.shields.io/docker/pulls/epicmorg/qbittorrent.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/qbittorrent/ ) | Custom build by [EpicMorg Team](https://github.com/EpicMorg) with benefits. + +# Containers Map + +![](https://raw.githubusercontent.com/EpicMorg/docker-scripts/master/.github/docker-scripts.png) + +# Stargazers +[![Stargazers repo roster for @EpicMorg/docker-scripts](https://reporoster.com/stars/dark/EpicMorg/docker-scripts)](https://github.com/EpicMorg/docker-scripts/stargazers) + +# Forkers +[![Forkers repo roster for @EpicMorg/docker-scripts](https://reporoster.com/forks/dark/EpicMorg/docker-scripts)](https://github.com/EpicMorg/docker-scripts/network/members) + +# ↳ Special Thanks: + +* [@Aleks-Z](https://github.com/Aleks-Z) +* [@alex4rks](https://github.com/alex4rks) +* [@kasthack](https://github.com/kasthack) diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..45c727963 --- /dev/null +++ b/Makefile @@ -0,0 +1,178 @@ +VERSION = "2021.11.12" +AUTHOR = "EpicMorg" +MODIFIED = "AlexZ" +DOCKER_SCAN_SUGGEST = false + +all: app + +app: + @make -s version + @make -s help + +version: + @echo "==================================================" + @echo " docker-scripts, version: ${VERSION}, [` git branch --show-current `]" + @echo "==================================================" + +help: + @echo "make help - show this help." + @echo "make version - show version of this repository." + @echo "make docker-compose-install - local install latest version of docker-compose binary." + @echo "make docker-compose-update - update local docker-compose binary." + @echo "make docker-clean - cleanup docker kitchen." + @echo "make chmod - find and fix chmod of '*.sh' and '*.py' files." + @echo "make advanced-images - build only advanced images." + @echo "make ecosystem-images - build ecosystem images." + @echo "make images - build all images." + +chmod: + find . -name '*.sh' -type f | xargs chmod +x + find . -name '*.py' -type f | xargs chmod +x + +docker-compose-install: + @make -s docker-compose-update + +docker-compose-update: + @bash ./bin/docker-compose-update.sh + +docker-clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af + +images: + make docker-clean + make advanced-images + make docker-clean + make ecosystem-images + make docker-clean + +advanced-images: + @echo "=======================================" + @echo "===== Building third-party images =====" + @echo "=======================================" + + cd `pwd`/linux/advanced/zabbix/agent && pwd && make + cd `pwd`/linux/advanced/zabbix/java-gateway && pwd && make + cd `pwd`/linux/advanced/zabbix/proxy && pwd && make + cd `pwd`/linux/advanced/zabbix/server && pwd && make + cd `pwd`/linux/advanced/zabbix/web && pwd && make + + cd `pwd`/linux/advanced/mattermost && pwd && make + cd `pwd`/linux/advanced/nextcloud/pure/latest && pwd && make + cd `pwd`/linux/advanced/nextcloud/patched/latest && pwd && make + cd `pwd`/linux/advanced/teamcity/server && pwd && make + cd `pwd`/linux/advanced/redash && pwd && make + + cd `pwd`/linux/advanced/nextcloud/pure/14 && pwd && make + cd `pwd`/linux/advanced/nextcloud/pure/15 && pwd && make + cd `pwd`/linux/advanced/nextcloud/pure/16 && pwd && make + cd `pwd`/linux/advanced/nextcloud/pure/17 && pwd && make + cd `pwd`/linux/advanced/nextcloud/pure/18 && pwd && make + cd `pwd`/linux/advanced/nextcloud/pure/19 && pwd && make + cd `pwd`/linux/advanced/nextcloud/pure/20 && pwd && make + cd `pwd`/linux/advanced/nextcloud/pure/21 && pwd && make + cd `pwd`/linux/advanced/nextcloud/pure/22 && pwd && make + + cd `pwd`/linux/advanced/nextcloud/patched/14 && pwd && make + cd `pwd`/linux/advanced/nextcloud/patched/15 && pwd && make + cd `pwd`/linux/advanced/nextcloud/patched/16 && pwd && make + cd `pwd`/linux/advanced/nextcloud/patched/17 && pwd && make + cd `pwd`/linux/advanced/nextcloud/patched/18 && pwd && make + cd `pwd`/linux/advanced/nextcloud/patched/19 && pwd && make + cd `pwd`/linux/advanced/nextcloud/patched/20 && pwd && make + cd `pwd`/linux/advanced/nextcloud/patched/21 && pwd && make + cd `pwd`/linux/advanced/nextcloud/patched/22 && pwd && make + +ecosystem-images: + @echo "=======================================" + @echo "===== Building EpicMorg images =====" + @echo "=======================================" + + cd `pwd`/linux/ecosystem/epicmorg/prod/main && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/prod/jdk6 && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/prod/jdk7 && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/prod/jdk8 && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/prod/jdk11 && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/prod/jdk16 && pwd && make + + cd `pwd`/linux/ecosystem/epicmorg/edge/main && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/edge/jdk6 && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/edge/jdk7 && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/edge/jdk8 && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/edge/jdk11 && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/edge/jdk16 && pwd && make + + cd `pwd`/linux/ecosystem/epicmorg/devel/main && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/devel/jdk6 && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/devel/jdk7 && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/devel/jdk8 && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/devel/jdk11 && pwd && make + cd `pwd`/linux/ecosystem/epicmorg/devel/jdk16 && pwd && make + + cd `pwd`/linux/ecosystem/php/latest && pwd && make + cd `pwd`/linux/ecosystem/php/php7.2 && pwd && make + cd `pwd`/linux/ecosystem/php/php7.3 && pwd && make + cd `pwd`/linux/ecosystem/php/php7.4 && pwd && make + + cd `pwd`/linux/ecosystem/apache2/latest && pwd && make + cd `pwd`/linux/ecosystem/apache2/php7.2 && pwd && make + cd `pwd`/linux/ecosystem/apache2/php7.3 && pwd && make + cd `pwd`/linux/ecosystem/apache2/php7.4 && pwd && make + + cd `pwd`/linux/ecosystem/testrail && pwd && make + + cd `pwd`/linux/ecosystem/torrserver && pwd && make + + cd `pwd`/linux/ecosystem/postgres/latest && pwd && make + cd `pwd`/linux/ecosystem/postgres/8.2 && pwd && make + cd `pwd`/linux/ecosystem/postgres/8.3 && pwd && make + cd `pwd`/linux/ecosystem/postgres/8.4 && pwd && make + cd `pwd`/linux/ecosystem/postgres/9.0 && pwd && make + cd `pwd`/linux/ecosystem/postgres/9.1 && pwd && make + cd `pwd`/linux/ecosystem/postgres/9.2 && pwd && make + cd `pwd`/linux/ecosystem/postgres/9.3 && pwd && make + cd `pwd`/linux/ecosystem/postgres/9.4 && pwd && make + cd `pwd`/linux/ecosystem/postgres/9.5 && pwd && make + cd `pwd`/linux/ecosystem/postgres/9.6 && pwd && make + cd `pwd`/linux/ecosystem/postgres/10 && pwd && make + cd `pwd`/linux/ecosystem/postgres/11 && pwd && make + cd `pwd`/linux/ecosystem/postgres/12 && pwd && make + cd `pwd`/linux/ecosystem/postgres/13 && pwd && make + cd `pwd`/linux/ecosystem/postgres/14 && pwd && make + + cd `pwd`/linux/ecosystem/qbittorrent/latest && pwd && make + cd `pwd`/linux/ecosystem/qbittorrent/stable && pwd && make + + cd `pwd`/linux/ecosystem/vk2discord && pwd && make + + cd `pwd`/linux/ecosystem/teamcity/agent/latest && pwd && make + + cd `pwd`/linux/ecosystem/teamcity/agent/amxx-sdk && pwd && make + cd `pwd`/linux/ecosystem/teamcity/agent/android-sdk && pwd && make + cd `pwd`/linux/ecosystem/teamcity/agent/atlassian-sdk && pwd && make + cd `pwd`/linux/ecosystem/teamcity/agent/dotnet-sdk && pwd && make + cd `pwd`/linux/ecosystem/teamcity/agent/node12 && pwd && make + cd `pwd`/linux/ecosystem/teamcity/agent/node14 && pwd && make + cd `pwd`/linux/ecosystem/teamcity/agent/node15 && pwd && make + cd `pwd`/linux/ecosystem/teamcity/agent/node16 && pwd && make + cd `pwd`/linux/ecosystem/teamcity/agent/php7.2 && pwd && make + cd `pwd`/linux/ecosystem/teamcity/agent/php7.3 && pwd && make + cd `pwd`/linux/ecosystem/teamcity/agent/php7.4 && pwd && make + cd `pwd`/linux/ecosystem/teamcity/agent/steam-sdk && pwd && make + + cd `pwd`/linux/ecosystem/nginx/latest/main && pwd && make + cd `pwd`/linux/ecosystem/nginx/latest/php && pwd && make + cd `pwd`/linux/ecosystem/nginx/latest/rtmp-hls && pwd && make + cd `pwd`/linux/ecosystem/nginx/latest/quic && pwd && make + + cd `pwd`/linux/advanced/vscode-server/latest && pwd && make + cd `pwd`/linux/advanced/vscode-server/devops && pwd && make + + cd `pwd`/linux/advanced/vscode-server/amxx && pwd && make + cd `pwd`/linux/advanced/vscode-server/android && pwd && make + cd `pwd`/linux/advanced/vscode-server/cpp && pwd && make + cd `pwd`/linux/advanced/vscode-server/docker && pwd && make + cd `pwd`/linux/advanced/vscode-server/dotnet && pwd && make diff --git a/README.md b/README.md index 94e942d31..30ef3398b 100644 --- a/README.md +++ b/README.md @@ -5,43 +5,31 @@ | [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master-linux/master?label=build%20master-linux&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster-linux) | [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/develop-linux/develop?label=build%20develop-linux&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Adevelop-linux) | [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master-win32/master?label=build%20master-win32&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster-win32) | [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/develop-win32/develop?label=build%20develop-win32&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Adevelop-win32) +## Description +A collection of docker images for production use. This repo contains 2 types of images - `advanced` and `ecosystem`. We support `linux x86_64` docker engine (`Win64` is still in the ***testing*** stage). + +* `linux/advanced` folder contains improved images like `nextcloud` or `teamcity server`, `zabbix collection`, etc. These images just forked from original developers and patched a bit. +* `linux/ecosystem` folder contains images developed by our team like full `Atlassian Stack`, compilled `nginx`, `php`, `testrail` and othres. + +See more at [DESCRIPTION.md](DESCRIPTION.md) + ![](https://raw.githubusercontent.com/EpicMorg/docker-scripts/master/.github/logo.png) -## Quick navigation for sub-repositories -Containers was Splited to another sub-repositories. Now current repo will be contain only fresh and latest versions of images. All older versions will be appeared in sub-repos. More fater building, less bad load to CI. - -| Bitbucket | Confluence | Jira | EpicMorg | -|-------------:|-------------:|:-------------|:-------------| -| [![atlassian-bitbucket-7](https://img.shields.io/badge/Atlassian-Bitbucket%207-brightgreen?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/bitbucket/7) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![confluence-7](https://img.shields.io/badge/Atlassian-Confluence%207-brightgreen?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/confluence/7) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![atlassian-jira-8](https://img.shields.io/badge/Atlassian-Jira%208-brightgreen?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/jira/8) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![Deprecated](https://img.shields.io/badge/EpicMorg-Deprecated-red?style=popout-square)](https://github.com/EpicMorgVault/docker-deprecated-images) [![GHA](https://img.shields.io/badge/build-none-lightgrey?style=flat-square)](https://github.com/EpicMorgVault/docker-deprecated-images) | -| [![atlassian-bitbucket-6](https://img.shields.io/badge/Atlassian-Bitbucket%206-brightgreen?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/bitbucket/6) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![confluence-6](https://img.shields.io/badge/Atlassian-Confluence%206-yellow?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/confluence/6) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![atlassian-jira-7](https://img.shields.io/badge/Atlassian-Jira%207-yellow?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/jira/7) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![Experimental](https://img.shields.io/badge/EpicMorg-Experimental-orange?style=popout-square)](https://github.com/EpicMorgVault/docker-experimental-images) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/testing/testing?label=build%20testing&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Atesting) | -| ` ` | [![confluence-5](https://img.shields.io/badge/Atlassian-Confluence%205-orange?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/confluence/5) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![atlassian-jira-6](https://img.shields.io/badge/Atlassian-Jira%206-orange?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/jira/6) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![NextCloud](https://img.shields.io/badge/EpicMorg-NextCloud%20Backports-yellow?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/nextcloud) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | -| ` ` | ` ` | [![atlassian-jira-5](https://img.shields.io/badge/Atlassian-Jira%205-red?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/atlassian/jira/5) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | [![PostgreSQL](https://img.shields.io/badge/EpicMorg-PostgreSQL%20Backports-yellow?style=popout-square)](https://github.com/EpicMorg/docker-scripts/tree/master/postgres) [![GHA](https://img.shields.io/github/workflow/status/EpicMorg/docker-scripts/master/master?label=build%20master&style=flat-square)](https://github.com/EpicMorg/docker-scripts/actions?query=workflow%3Amaster) | | - - -# Containers Map - -![](https://raw.githubusercontent.com/EpicMorg/docker-scripts/master/.github/docker-scripts.png) - -# Some popular products [![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B81CUI4) +# Few popular products [![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B81CUI4) | Application | Pulls | Notes | ------ | ------ | ------ | [![Atlassian Bitbucket](https://img.shields.io/badge/Atlassian%20Bitbucket--brightgreen.svg?style=popout-square)](https://www.atlassian.com/software/bitbucket/download) | [![](https://img.shields.io/docker/pulls/epicmorg/bitbucket.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/bitbucket/) | `Atlassian Bitbucket` server. You also can install `datacenter` edition. | [![Atlassian Confluence](https://img.shields.io/badge/Atlassian%20Confluence--brightgreen.svg?style=popout-square)](https://www.atlassian.com/software/confluence/download) | [![](https://img.shields.io/docker/pulls/epicmorg/confluence.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/confluence/) | `Atlassian Confluence` server. You also can install `datacenter` edition. | [![Atlassian Jira](https://img.shields.io/badge/Atlassian%20Jira--brightgreen.svg?style=popout-square)](https://www.atlassian.com/software/jira/download) | [![](https://img.shields.io/docker/pulls/epicmorg/jira.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/jira/) | `Atlassian Jira: Softrware` server. You also can install `servicedesk`, `core` or `datacenter` editions. -| [![Nginx Mainline](https://img.shields.io/badge/Nginx--brightgreen.svg?style=popout-square)](https://nginx.org/en/download.html) | [![](https://img.shields.io/docker/pulls/epicmorg/balancer.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/balancer/) | Mainline custom build by [EpicMorg Team](https://github.com/EpicMorg) with http2 support and some modules. -| [![Apache2](https://img.shields.io/badge/Apache2--brightgreen.svg?style=popout-square)](https://deb.sury.org/) | [![](https://img.shields.io/docker/pulls/epicmorg/websites.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/websites/ ) | Latest pure apache2. -| [![php7](https://img.shields.io/badge/php7--brightgreen.svg?style=popout-square)](https://deb.sury.org/) | [![](https://img.shields.io/docker/pulls/epicmorg/websites.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/websites/ ) | php 7.3 custom build by [Ondrej Sury](https://launchpad.net/~ondrej). Component of container above. -| [![nc](https://img.shields.io/badge/NextCloud--brightgreen.svg?style=popout-square)](https://hub.docker.com/_/nextcloud) | [![](https://img.shields.io/docker/pulls/epicmorg/nextcloud.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/nextcloud/ ) | Fixed `nextcloud:latest` build by [EpicMorg Team](https://github.com/EpicMorg) with benefits. -| [![zabbix-agent](https://img.shields.io/badge/Zabbix%20Agent--brightgreen.svg?style=popout-square)](https://github.com/zabbix/zabbix-docker) | [![](https://img.shields.io/docker/pulls/epicmorg/zabbix-agent.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/zabbix-agent/ ) | Fixed `zabbix/zabbix-agent:ubuntu-latest` build by [EpicMorg Team](https://github.com/EpicMorg) with benefits. -| [![zabbix-server](https://img.shields.io/badge/Zabbix%20Server--brightgreen.svg?style=popout-square)](https://github.com/zabbix/zabbix-docker) | [![](https://img.shields.io/docker/pulls/epicmorg/zabbix-server-mysql.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/zabbix-server-mysql/ ) | Fixed `zabbix/zabbix-server-mysql:ubuntu-latest` build by [EpicMorg Team](https://github.com/EpicMorg) with benefits. -| [![zabbix-web](https://img.shields.io/badge/Zabbix%20Web--brightgreen.svg?style=popout-square)](https://github.com/zabbix/zabbix-docker) | [![](https://img.shields.io/docker/pulls/epicmorg/zabbix-web-apache-mysql.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/zabbix-web-apache-mysql/ ) | Fixed `zabbix/zabbix-web-apache-mysql:ubuntu-latest` build by [EpicMorg Team](https://github.com/EpicMorg) with benefits. -| [![zabbix-java-gateway](https://img.shields.io/badge/Zabbix%20JavaGW--brightgreen.svg?style=popout-square)](https://github.com/zabbix/zabbix-docker) | [![](https://img.shields.io/docker/pulls/epicmorg/zabbix-java-gateway.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/zabbix-java-gateway/ ) | Fixed `zabbix/zabbix-java-gateway:ubuntu-latest` build by [EpicMorg Team](https://github.com/EpicMorg) with benefits. -| [![teamcity-agent](https://img.shields.io/badge/TeamCity%20Agent--brightgreen.svg?style=popout-square)](https://github.com/JetBrains/teamcity-docker-agent) | [![](https://img.shields.io/docker/pulls/epicmorg/teamcity-agent.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/teamcity-agent/ ) | Custom build by [EpicMorg Team](https://github.com/EpicMorg) with benefits. -| [![qbittorrent](https://img.shields.io/badge/qBittorrent--brightgreen.svg?style=popout-square)](https://github.com/qbittorrent/qBittorrent) | [![](https://img.shields.io/docker/pulls/epicmorg/qbittorrent.svg?style=popout-square)](https://hub.docker.com/r/epicmorg/qbittorrent/ ) | Custom build by [EpicMorg Team](https://github.com/EpicMorg) with benefits. +# Stargazers +[![Stargazers repo roster for @EpicMorg/docker-scripts](https://reporoster.com/stars/dark/EpicMorg/docker-scripts)](https://github.com/EpicMorg/docker-scripts/stargazers) -## Thanks +# Forkers +[![Forkers repo roster for @EpicMorg/docker-scripts](https://reporoster.com/forks/dark/EpicMorg/docker-scripts)](https://github.com/EpicMorg/docker-scripts/network/members) + +# ↳ Special Thanks: * [@Aleks-Z](https://github.com/Aleks-Z) * [@alex4rks](https://github.com/alex4rks) diff --git a/bin/chmod.sh b/bin/chmod.sh deleted file mode 100755 index 397510aa9..000000000 --- a/bin/chmod.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -cd .. -find . -name '*.sh' -type f | xargs chmod +x -find . -name '*.py' -type f | xargs chmod +x \ No newline at end of file diff --git a/bin/docker-compose-update b/bin/docker-compose-update new file mode 100755 index 000000000..1a43d1c9b --- /dev/null +++ b/bin/docker-compose-update @@ -0,0 +1,39 @@ +#!/bin/bash + +export DOCKER_COMPOSE_REMOTE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` + +export DOCKER_COMPOSE_LOCAL_VERSION=`docker-compose -v` + +export DOCKER_COMPOSE_BIN=/usr/local/bin/docker-compose + +if [ -f $DOCKER_COMPOSE_BIN ]; then + echo "========================================================================================" + echo "The file '$DOCKER_COMPOSE_BIN' exists." + echo "========================================================================================" + echo "Local Docker Compose version is: ${DOCKER_COMPOSE_LOCAL_VERSION}" + echo "========================================================================================" +else + echo "========================================================================================" + echo "The file '$DOCKER_COMPOSE_BIN' in not found. Installing..." + echo "========================================================================================" +fi + +echo "========================================================================================" +echo "Latest Docker Compose version is: ${DOCKER_COMPOSE_REMOTE_VERSION}" +echo "========================================================================================" + + +echo "========================================================================================" +echo "Installing remote version:" +echo "========================================================================================" +curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_REMOTE_VERSION}/docker-compose-Linux-x86_64 -o $DOCKER_COMPOSE_BIN + +echo "========================================================================================" +echo "Setting up permissions..." +echo "========================================================================================" +chmod +x $DOCKER_COMPOSE_BIN + + +echo "========================================================================================" +echo "Updated Docker Compose version is: ${DOCKER_COMPOSE_LOCAL_VERSION}" +echo "========================================================================================" diff --git a/bin/docker-compose-update.sh b/bin/docker-compose-update.sh new file mode 100755 index 000000000..2fc9249f5 --- /dev/null +++ b/bin/docker-compose-update.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +curl --progress-bar -L "https://github.com/docker/compose/releases/download/`curl -fsSLI -o /dev/null -w %{url_effective} https://github.com/docker/compose/releases/latest | sed 's#.*tag/##g' && echo`/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +chmod +x /usr/local/bin/docker-compose +docker-compose -v diff --git a/bin/dotnet/EpicMorg.DockerGenerator.csproj b/bin/dotnet/EpicMorg.DockerGenerator.csproj new file mode 100644 index 000000000..0bb737852 --- /dev/null +++ b/bin/dotnet/EpicMorg.DockerGenerator.csproj @@ -0,0 +1,10 @@ + + + + Exe + net6.0 + + + + + diff --git a/bin/dotnet/Program.cs b/bin/dotnet/Program.cs new file mode 100644 index 000000000..1b28f17e6 --- /dev/null +++ b/bin/dotnet/Program.cs @@ -0,0 +1,96 @@ +namespace Epicmorg.DockerGenerator +{ + using System; + using System.IO; + using System.Linq; + using System.Runtime.InteropServices; + using System.Text.Json; + using System.Threading.Tasks; + + class Program + { + /// + /// EpicMorg docker build script generator + /// + /// Working directory + /// Atlassian product JSON + /// Product name + /// Overwrite existing directories + /// Overwrite archive type + /// Silently ignore versions without templates + /// + public static async Task Main(DirectoryInfo workdir, FileInfo json, string product, bool force = false, bool ignoreVersionsWithoutTemplates = false,string archiveType = ".tar.gz") + { + var jsonData = File.ReadAllText(json.FullName)["downloads(".Length..^1]; + var items = JsonSerializer.Deserialize(jsonData, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); + foreach (var item in items.Where(a=>a.ZipUrl != null && a.ZipUrl.ToString().EndsWith(archiveType) && !a.ZipUrl .ToString().Contains("-war"))) + { + var majorVersion = item.Version.Split(".").First(); + var templatePath = Path.Combine(workdir.FullName, product, "templates", majorVersion); + if (!Directory.Exists(templatePath)) + { + if (!ignoreVersionsWithoutTemplates) + { + Console.Error.WriteLine("Failed to find template for the major version {0}. Exiting", majorVersion); + return; + } + else + { + Console.Error.WriteLine("Failed to find template for the major version {0}. Skipping", majorVersion); + continue; + } + } + + var localPath = Path.Combine(product, majorVersion, item.Version); + var outputPath = Path.Combine(workdir.FullName, localPath); + if (Directory.Exists(outputPath)) + { + if (!force) + { + Console.Error.WriteLine("Directory '{0}' already exists, skipping", localPath); + continue; + } + else + { + Console.Error.WriteLine("Directory '{0}' already exists, overwriting", localPath); + Directory.Delete(outputPath, true); + } + } + Directory.CreateDirectory(outputPath); + CopyFilesRecursively(new DirectoryInfo(templatePath), new DirectoryInfo(outputPath)); + File.WriteAllText( + Path.Combine(outputPath, ".env"), + @$" +RELEASE={item.Version} +DOWNLOAD_URL={item.ZipUrl} +" + ); + } + + } + + private static void CopyFilesRecursively(DirectoryInfo source, DirectoryInfo target) + { + foreach (DirectoryInfo dir in source.GetDirectories()) + CopyFilesRecursively(dir, target.CreateSubdirectory(dir.Name)); + foreach (FileInfo file in source.GetFiles()) + file.CopyTo(Path.Combine(target.FullName, file.Name)); + } + + public partial class ResponseItem + { + public string Description { get; set; } + public string Edition { get; set; } + public Uri ZipUrl { get; set; } + public string TarUrl { get; set; } + public string Md5 { get; set; } + public string Size { get; set; } + public string Released { get; set; } + public string Type { get; set; } + public string Platform { get; set; } + public string Version { get; set; } + public Uri ReleaseNotes { get; set; } + public Uri UpgradeNotes { get; set; } + } + } +} diff --git a/bin/dotnet/README.md b/bin/dotnet/README.md new file mode 100644 index 000000000..1c5f134a0 --- /dev/null +++ b/bin/dotnet/README.md @@ -0,0 +1,14 @@ +## How to Update jira v8 example + +``` +Epicmorg.DockerGenerator.exe + --workdir "\docker-scripts\linux\atlassian\" + --json "\atlassian-json\json-backups\archived\jira-software.json" \\ + --product "jira" + --ignore-versions-without-templates +``` + +## inline +``` +Epicmorg.DockerGenerator.exe --workdir "D:\Work\GitHub\EpicMorg\Main\docker-scripts\linux\atlassian\" --json "D:\Work\GitHub\EpicMorg\Main\atlassian-json\json-backups\archived\jira-software.json" --product "jira" --ignore-versions-without-templates +``` \ No newline at end of file diff --git a/linux/mattermost/latest/Dockerfile b/linux/advanced/mattermost/Dockerfile similarity index 100% rename from linux/mattermost/latest/Dockerfile rename to linux/advanced/mattermost/Dockerfile diff --git a/linux/advanced/mattermost/Makefile b/linux/advanced/mattermost/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/mattermost/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/mattermost/docker-compose.yml b/linux/advanced/mattermost/docker-compose.yml new file mode 100644 index 000000000..d778bcbd9 --- /dev/null +++ b/linux/advanced/mattermost/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/mattermost-enterprise-edition:latest" + build: + context: . diff --git a/linux/mattermost/latest/edit.py b/linux/advanced/mattermost/edit.py similarity index 100% rename from linux/mattermost/latest/edit.py rename to linux/advanced/mattermost/edit.py diff --git a/linux/nextcloud/README.md b/linux/advanced/nextcloud/README.md similarity index 100% rename from linux/nextcloud/README.md rename to linux/advanced/nextcloud/README.md diff --git a/linux/advanced/nextcloud/patched/14/Dockerfile b/linux/advanced/nextcloud/patched/14/Dockerfile new file mode 100644 index 000000000..ca2db6e4f --- /dev/null +++ b/linux/advanced/nextcloud/patched/14/Dockerfile @@ -0,0 +1,8 @@ +FROM epicmorg/nextcloud:14 + +################################################################## +# thank u, mac users. rolling back normal ZipStreammer +################################################################## +RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php +ADD Streamer.php /usr/src/nextcloud/lib/private/ +RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php diff --git a/linux/advanced/nextcloud/patched/14/Makefile b/linux/advanced/nextcloud/patched/14/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/patched/14/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/nextcloud/14/README.md b/linux/advanced/nextcloud/patched/14/README.md similarity index 100% rename from linux/nextcloud/14/README.md rename to linux/advanced/nextcloud/patched/14/README.md diff --git a/linux/nextcloud/14/Streamer.php b/linux/advanced/nextcloud/patched/14/Streamer.php similarity index 100% rename from linux/nextcloud/14/Streamer.php rename to linux/advanced/nextcloud/patched/14/Streamer.php diff --git a/linux/advanced/nextcloud/patched/14/docker-compose.yml b/linux/advanced/nextcloud/patched/14/docker-compose.yml new file mode 100644 index 000000000..4dad29953 --- /dev/null +++ b/linux/advanced/nextcloud/patched/14/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:14-patched" + build: + context: . diff --git a/linux/advanced/nextcloud/patched/15/Dockerfile b/linux/advanced/nextcloud/patched/15/Dockerfile new file mode 100644 index 000000000..4c8aa5f3c --- /dev/null +++ b/linux/advanced/nextcloud/patched/15/Dockerfile @@ -0,0 +1,8 @@ +FROM epicmorg/nextcloud:15 + +################################################################## +# thank u, mac users. rolling back normal ZipStreammer +################################################################## +RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php +ADD Streamer.php /usr/src/nextcloud/lib/private/ +RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php diff --git a/linux/advanced/nextcloud/patched/15/Makefile b/linux/advanced/nextcloud/patched/15/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/patched/15/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/nextcloud/15/README.md b/linux/advanced/nextcloud/patched/15/README.md similarity index 100% rename from linux/nextcloud/15/README.md rename to linux/advanced/nextcloud/patched/15/README.md diff --git a/linux/nextcloud/15/Streamer.php b/linux/advanced/nextcloud/patched/15/Streamer.php similarity index 100% rename from linux/nextcloud/15/Streamer.php rename to linux/advanced/nextcloud/patched/15/Streamer.php diff --git a/linux/advanced/nextcloud/patched/15/docker-compose.yml b/linux/advanced/nextcloud/patched/15/docker-compose.yml new file mode 100644 index 000000000..f967eaa50 --- /dev/null +++ b/linux/advanced/nextcloud/patched/15/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:15-patched" + build: + context: . diff --git a/linux/advanced/nextcloud/patched/16/Dockerfile b/linux/advanced/nextcloud/patched/16/Dockerfile new file mode 100644 index 000000000..c16b7ceb2 --- /dev/null +++ b/linux/advanced/nextcloud/patched/16/Dockerfile @@ -0,0 +1,8 @@ +FROM epicmorg/nextcloud:16 + +################################################################## +# thank u, mac users. rolling back normal ZipStreammer +################################################################## +RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php +ADD Streamer.php /usr/src/nextcloud/lib/private/ +RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php diff --git a/linux/advanced/nextcloud/patched/16/Makefile b/linux/advanced/nextcloud/patched/16/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/patched/16/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/nextcloud/16/README.md b/linux/advanced/nextcloud/patched/16/README.md similarity index 100% rename from linux/nextcloud/16/README.md rename to linux/advanced/nextcloud/patched/16/README.md diff --git a/linux/nextcloud/16/Streamer.php b/linux/advanced/nextcloud/patched/16/Streamer.php similarity index 100% rename from linux/nextcloud/16/Streamer.php rename to linux/advanced/nextcloud/patched/16/Streamer.php diff --git a/linux/advanced/nextcloud/patched/16/docker-compose.yml b/linux/advanced/nextcloud/patched/16/docker-compose.yml new file mode 100644 index 000000000..d32214bcb --- /dev/null +++ b/linux/advanced/nextcloud/patched/16/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:16-patched" + build: + context: . diff --git a/linux/advanced/nextcloud/patched/17/Dockerfile b/linux/advanced/nextcloud/patched/17/Dockerfile new file mode 100644 index 000000000..8bce4c202 --- /dev/null +++ b/linux/advanced/nextcloud/patched/17/Dockerfile @@ -0,0 +1,8 @@ +FROM epicmorg/nextcloud:17 + +################################################################## +# thank u, mac users. rolling back normal ZipStreammer +################################################################## +RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php +ADD Streamer.php /usr/src/nextcloud/lib/private/ +RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php diff --git a/linux/advanced/nextcloud/patched/17/Makefile b/linux/advanced/nextcloud/patched/17/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/patched/17/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/nextcloud/17/README.md b/linux/advanced/nextcloud/patched/17/README.md similarity index 100% rename from linux/nextcloud/17/README.md rename to linux/advanced/nextcloud/patched/17/README.md diff --git a/linux/nextcloud/17/Streamer.php b/linux/advanced/nextcloud/patched/17/Streamer.php similarity index 100% rename from linux/nextcloud/17/Streamer.php rename to linux/advanced/nextcloud/patched/17/Streamer.php diff --git a/linux/advanced/nextcloud/patched/17/docker-compose.yml b/linux/advanced/nextcloud/patched/17/docker-compose.yml new file mode 100644 index 000000000..70b24f558 --- /dev/null +++ b/linux/advanced/nextcloud/patched/17/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:17-patched" + build: + context: . diff --git a/linux/advanced/nextcloud/patched/18/Dockerfile b/linux/advanced/nextcloud/patched/18/Dockerfile new file mode 100644 index 000000000..13e0ba464 --- /dev/null +++ b/linux/advanced/nextcloud/patched/18/Dockerfile @@ -0,0 +1,8 @@ +FROM epicmorg/nextcloud:18 + +################################################################## +# thank u, mac users. rolling back normal ZipStreammer +################################################################## +RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php +ADD Streamer.php /usr/src/nextcloud/lib/private/ +RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php diff --git a/linux/advanced/nextcloud/patched/18/Makefile b/linux/advanced/nextcloud/patched/18/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/patched/18/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/nextcloud/18/README.md b/linux/advanced/nextcloud/patched/18/README.md similarity index 100% rename from linux/nextcloud/18/README.md rename to linux/advanced/nextcloud/patched/18/README.md diff --git a/linux/nextcloud/18/Streamer.php b/linux/advanced/nextcloud/patched/18/Streamer.php similarity index 100% rename from linux/nextcloud/18/Streamer.php rename to linux/advanced/nextcloud/patched/18/Streamer.php diff --git a/linux/advanced/nextcloud/patched/18/docker-compose.yml b/linux/advanced/nextcloud/patched/18/docker-compose.yml new file mode 100644 index 000000000..0302ada0d --- /dev/null +++ b/linux/advanced/nextcloud/patched/18/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:18-patched" + build: + context: . diff --git a/linux/advanced/nextcloud/patched/19/Dockerfile b/linux/advanced/nextcloud/patched/19/Dockerfile new file mode 100644 index 000000000..57643bc83 --- /dev/null +++ b/linux/advanced/nextcloud/patched/19/Dockerfile @@ -0,0 +1,8 @@ +FROM epicmorg/nextcloud:19 + +################################################################## +# thank u, mac users. rolling back normal ZipStreammer +################################################################## +RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php +ADD Streamer.php /usr/src/nextcloud/lib/private/ +RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php diff --git a/linux/advanced/nextcloud/patched/19/Makefile b/linux/advanced/nextcloud/patched/19/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/patched/19/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/nextcloud/19/README.md b/linux/advanced/nextcloud/patched/19/README.md similarity index 100% rename from linux/nextcloud/19/README.md rename to linux/advanced/nextcloud/patched/19/README.md diff --git a/linux/nextcloud/19/Streamer.php b/linux/advanced/nextcloud/patched/19/Streamer.php similarity index 100% rename from linux/nextcloud/19/Streamer.php rename to linux/advanced/nextcloud/patched/19/Streamer.php diff --git a/linux/advanced/nextcloud/patched/19/docker-compose.yml b/linux/advanced/nextcloud/patched/19/docker-compose.yml new file mode 100644 index 000000000..14b4a0dae --- /dev/null +++ b/linux/advanced/nextcloud/patched/19/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:19-patched" + build: + context: . diff --git a/linux/advanced/nextcloud/patched/20/Dockerfile b/linux/advanced/nextcloud/patched/20/Dockerfile new file mode 100644 index 000000000..c14a32c56 --- /dev/null +++ b/linux/advanced/nextcloud/patched/20/Dockerfile @@ -0,0 +1,8 @@ +FROM epicmorg/nextcloud:20 + +################################################################## +# thank u, mac users. rolling back normal ZipStreammer +################################################################## +RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php +ADD Streamer.php /usr/src/nextcloud/lib/private/ +RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php diff --git a/linux/advanced/nextcloud/patched/20/Makefile b/linux/advanced/nextcloud/patched/20/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/patched/20/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/nextcloud/20/README.md b/linux/advanced/nextcloud/patched/20/README.md similarity index 100% rename from linux/nextcloud/20/README.md rename to linux/advanced/nextcloud/patched/20/README.md diff --git a/linux/nextcloud/20/Streamer.php b/linux/advanced/nextcloud/patched/20/Streamer.php similarity index 100% rename from linux/nextcloud/20/Streamer.php rename to linux/advanced/nextcloud/patched/20/Streamer.php diff --git a/linux/advanced/nextcloud/patched/20/docker-compose.yml b/linux/advanced/nextcloud/patched/20/docker-compose.yml new file mode 100644 index 000000000..cf59d2964 --- /dev/null +++ b/linux/advanced/nextcloud/patched/20/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:20-patched" + build: + context: . diff --git a/linux/advanced/nextcloud/patched/21/Dockerfile b/linux/advanced/nextcloud/patched/21/Dockerfile new file mode 100644 index 000000000..d00bd4a77 --- /dev/null +++ b/linux/advanced/nextcloud/patched/21/Dockerfile @@ -0,0 +1,8 @@ +FROM epicmorg/nextcloud:21 + +################################################################## +# thank u, mac users. rolling back normal ZipStreammer +################################################################## +RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php +ADD Streamer.php /usr/src/nextcloud/lib/private/ +RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php diff --git a/linux/advanced/nextcloud/patched/21/Makefile b/linux/advanced/nextcloud/patched/21/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/patched/21/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/nextcloud/21/README.md b/linux/advanced/nextcloud/patched/21/README.md similarity index 100% rename from linux/nextcloud/21/README.md rename to linux/advanced/nextcloud/patched/21/README.md diff --git a/linux/nextcloud/21/Streamer.php b/linux/advanced/nextcloud/patched/21/Streamer.php similarity index 100% rename from linux/nextcloud/21/Streamer.php rename to linux/advanced/nextcloud/patched/21/Streamer.php diff --git a/linux/advanced/nextcloud/patched/21/docker-compose.yml b/linux/advanced/nextcloud/patched/21/docker-compose.yml new file mode 100644 index 000000000..38e45a129 --- /dev/null +++ b/linux/advanced/nextcloud/patched/21/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:21-patched" + build: + context: . diff --git a/linux/advanced/nextcloud/patched/22/Dockerfile b/linux/advanced/nextcloud/patched/22/Dockerfile new file mode 100644 index 000000000..a3e26aa8d --- /dev/null +++ b/linux/advanced/nextcloud/patched/22/Dockerfile @@ -0,0 +1,8 @@ +FROM epicmorg/nextcloud:22 + +################################################################## +# thank u, mac users. rolling back normal ZipStreammer +################################################################## +RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php +ADD Streamer.php /usr/src/nextcloud/lib/private/ +RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php diff --git a/linux/advanced/nextcloud/patched/22/Makefile b/linux/advanced/nextcloud/patched/22/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/patched/22/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/nextcloud/latest/README.md b/linux/advanced/nextcloud/patched/22/README.md similarity index 100% rename from linux/nextcloud/latest/README.md rename to linux/advanced/nextcloud/patched/22/README.md diff --git a/linux/nextcloud/latest/Streamer.php b/linux/advanced/nextcloud/patched/22/Streamer.php similarity index 100% rename from linux/nextcloud/latest/Streamer.php rename to linux/advanced/nextcloud/patched/22/Streamer.php diff --git a/linux/advanced/nextcloud/patched/22/docker-compose.yml b/linux/advanced/nextcloud/patched/22/docker-compose.yml new file mode 100644 index 000000000..2d2e02014 --- /dev/null +++ b/linux/advanced/nextcloud/patched/22/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:22-patched" + build: + context: . diff --git a/linux/advanced/nextcloud/patched/latest/Dockerfile b/linux/advanced/nextcloud/patched/latest/Dockerfile new file mode 100644 index 000000000..365e01819 --- /dev/null +++ b/linux/advanced/nextcloud/patched/latest/Dockerfile @@ -0,0 +1,8 @@ +FROM epicmorg/nextcloud:latest + +################################################################## +# thank u, mac users. rolling back normal ZipStreammer +################################################################## +RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php +ADD Streamer.php /usr/src/nextcloud/lib/private/ +RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php diff --git a/linux/advanced/nextcloud/patched/latest/Makefile b/linux/advanced/nextcloud/patched/latest/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/patched/latest/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/nextcloud/patched/latest/README.md b/linux/advanced/nextcloud/patched/latest/README.md new file mode 100644 index 000000000..b6df71808 --- /dev/null +++ b/linux/advanced/nextcloud/patched/latest/README.md @@ -0,0 +1,527 @@ +# What is Nextcloud? + +[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages) +[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh) +[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud) +[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud) +[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud) +[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud) +[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud) +[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud) +[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud) +[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud) +[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud) + +A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. + +![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg) + +# How to use this image +This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from. + +The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified. + +The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container. + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml) + +## Using the apache image +The apache image contains a webserver and exposes port 80. To start the container type: + +```console +$ docker run -d -p 8080:80 nextcloud +``` + +Now you can access Nextcloud at http://localhost:8080/ from your host system. + + +## Using the fpm image +To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. +If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). +In both cases you don't want to map the fpm port to your host. + +```console +$ docker run -d nextcloud:fpm +``` + +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). + +## Using an external database +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. + +## Persistent data +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. + +A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. + +Nextcloud: +- `/var/www/html/` folder where all nextcloud data lives +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +nextcloud +``` + +Database: +- `/var/lib/mysql` MySQL / MariaDB Data +- `/var/lib/postgresql/data` PostgreSQL Data +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb +``` + +If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. +The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. + +Overview of the folders that can be mounted as volumes: + +- `/var/www/html` Main folder, needed for updating +- `/var/www/html/custom_apps` installed / modified apps +- `/var/www/html/config` local configuration +- `/var/www/html/data` the actual data of your Nextcloud +- `/var/www/html/themes/` theming/branding + +If you want to use named volumes for all of these, it would look like this: +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +nextcloud +``` + +## Using the Nextcloud command-line interface +To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): +```console +$ docker exec --user www-data CONTAINER_ID php occ +``` +or for docker-compose: +```console +$ docker-compose exec --user www-data app php occ +``` + +## Auto configuration via environment variables +The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type! + +__SQLite__: +- `SQLITE_DATABASE` Name of the database using sqlite + +__MYSQL/MariaDB__: +- `MYSQL_DATABASE` Name of the database using mysql / mariadb. +- `MYSQL_USER` Username for the database using mysql / mariadb. +- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb. +- `MYSQL_HOST` Hostname of the database server using mysql / mariadb. + +__PostgreSQL__: +- `POSTGRES_DB` Name of the database using postgres. +- `POSTGRES_USER` Username for the database using postgres. +- `POSTGRES_PASSWORD` Password for the database user using postgres. +- `POSTGRES_HOST` Hostname of the database server using postgres. + +If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): + +- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user. +- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user. + +If you want, you can set the data directory, otherwise default value will be used. + +- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users. + +One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install. + +- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains + +The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with + +- `NEXTCLOUD_UPDATE` (default: _0_) + +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: + +- `REDIS_HOST` (not set by default) Name of Redis container +- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports. +- `REDIS_HOST_PASSWORD` (not set by default) Redis password + +The use of Redis is recommended to prevent file locking problems. See the examples for further instructions. + +To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add: + +- `SMTP_HOST` (not set by default): The hostname of the SMTP server. +- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS. +- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS. +- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. +- `SMTP_NAME` (empty by default): The username for the authentication. +- `SMTP_PASSWORD` (empty by default): The password for the authentication. +- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. + +To use an external S3 compatible object store as primary storage, set the following variables: +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_KEY`: AWS style access key +- `OBJECTSTORE_S3_SECRET`: AWS style secret access key +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. +- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. + +To use an external OpenStack Swift object store as primary storage, set the following variables: +- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint +- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container +- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username +- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password +- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain +- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name +- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain +- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name +- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region +- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information. + + +## Using the apache image behind a reverse proxy and auto configure server host and protocol + +The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`. + +- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip. + +- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4. + +If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters. + +- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port. +- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https. +- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy. +- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address. + +Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details. + +Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. + +# Running this image with docker-compose +The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. + +At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. + +## Base version - apache +This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud + ports: + - 8080:80 + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +## Base version - FPM +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). + +As this setup does **not include encryption**, it should be run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud:fpm + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + + web: + image: nginx + ports: + - 8080:80 + links: + - app + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + volumes_from: + - app + restart: always +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +# Docker Secrets +As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: +```yaml +version: '3.2' + +services: + db: + image: postgres + restart: always + volumes: + - db:/var/lib/postgresql/data + environment: + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + secrets: + - postgres_db + - postgres_password + - postgres_user + + app: + image: nextcloud + restart: always + ports: + - 8080:80 + volumes: + - nextcloud:/var/www/html + environment: + - POSTGRES_HOST=db + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password + - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user + depends_on: + - db + secrets: + - nextcloud_admin_password + - nextcloud_admin_user + - postgres_db + - postgres_password + - postgres_user + +volumes: + db: + nextcloud: + +secrets: + nextcloud_admin_password: + file: ./nextcloud_admin_password.txt # put admin password to this file + nextcloud_admin_user: + file: ./nextcloud_admin_user.txt # put admin username to this file + postgres_db: + file: ./postgres_db.txt # put postgresql db name to this file + postgres_password: + file: ./postgres_password.txt # put postgresql password to this file + postgres_user: + file: ./postgres_user.txt # put postgresql username to this file +``` + +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`. + +# Make your Nextcloud available from the internet +Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory. + +## HTTPS - SSL encryption +There are many different possibilities to introduce encryption depending on your setup. + +We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you. + +In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup. + +# First use +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. + +# Update to a newer version +Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one. + +**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.** + +Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected. + +```console +$ docker pull nextcloud +$ docker stop +$ docker rm +$ docker run -d nextcloud +``` +Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. + +When using docker-compose your compose file takes care of your configuration, so you just have to run: + +```console +$ docker-compose pull +$ docker-compose up -d +``` + + +# Adding Features +A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it. +Start your derived image with the `FROM` statement and add whatever you like. + +```yaml +FROM nextcloud:apache + +RUN ... + +``` +The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. + +If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) + +```yaml + app: + build: . + links: + - db + volumes: + - data:/var/www/html/data + - config:/var/www/html/config + - apps:/var/www/html/apps + restart: always +``` + +If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work. + +```yaml +FROM nextcloud:apache + +... + +ENV NEXTCLOUD_UPDATE=1 + +CMD ["/usr/bin/supervisord"] +``` + + +**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run: + +```console +docker build -t your-name --pull . +docker run -d your-name +``` + +or for docker-compose: +```console +docker-compose build --pull +docker-compose up -d +``` + +The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. + +# Migrating an existing installation +You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: + +1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) + - To import from a MySQL dump use the following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` + - To import from a PostgreSQL dump use to following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` +3. Edit your config.php + 1. Set database connection + - In case of MySQL database + ```php + 'dbhost' => 'db:3306', + ``` + - In case of PostgreSQL database + ```php + 'dbhost' => 'db:5432', + ``` + 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these + ```diff + - "apps_paths" => array ( + - 0 => array ( + - "path" => OC::$SERVERROOT."/apps", + - "url" => "/apps", + - "writable" => true, + - ), + ``` + 3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable + ```php + 'apps_paths' => array ( + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), + ), + ``` + 4. Make sure your data directory is set to /var/www/html/data + ```php + 'datadirectory' => '/var/www/html/data', + ``` + + +4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container): +```console +docker cp ./data/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/data +docker cp ./theming/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/theming +docker cp ./config/config.php nextcloud_app_1:/var/www/html/config +docker-compose exec app chown -R www-data:www-data /var/www/html/config +``` +5. Copy only the custom apps you use (or simply redownload them from the web interface): +```console +docker cp ./custom_apps/ nextcloud_data:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps +``` + +# Questions / Issues +If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue. diff --git a/linux/advanced/nextcloud/patched/latest/Streamer.php b/linux/advanced/nextcloud/patched/latest/Streamer.php new file mode 100644 index 000000000..02a7719e4 --- /dev/null +++ b/linux/advanced/nextcloud/patched/latest/Streamer.php @@ -0,0 +1,190 @@ + + * @author Daniel Calviño Sánchez + * @author Joas Schilling + * @author Roeland Jago Douma + * @author Thomas Müller + * @author Victor Dubiniuk + * + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see + * + */ + +namespace OC; + +use OC\Files\Filesystem; +use OCP\Files\File; +use OCP\Files\Folder; +use OCP\Files\InvalidPathException; +use OCP\Files\NotFoundException; +use OCP\Files\NotPermittedException; +use OCP\IRequest; +use ownCloud\TarStreamer\TarStreamer; +use ZipStreamer\ZipStreamer; + +class Streamer { + // array of regexp. Matching user agents will get tar instead of zip + private $preferTarFor = [ '/macintosh|mac os x/i' ]; + + // streamer instance + private $streamerInstance; + + /** + * Streamer constructor. + * + * @param IRequest $request + * @param int $size The size of the files in bytes + * @param int $numberOfFiles The number of files (and directories) that will + * be included in the streamed file + */ + public function __construct(IRequest $request, $size, int $numberOfFiles){ + + /** + * zip32 constraints for a basic (without compression, volumes nor + * encryption) zip file according to the Zip specification: + * - No file size is larger than 4 bytes (file size < 4294967296); see + * 4.4.9 uncompressed size + * - The size of all files plus their local headers is not larger than + * 4 bytes; see 4.4.16 relative offset of local header and 4.4.24 + * offset of start of central directory with respect to the starting + * disk number + * - The total number of entries (files and directories) in the zip file + * is not larger than 2 bytes (number of entries < 65536); see 4.4.22 + * total number of entries in the central dir + * - The size of the central directory is not larger than 4 bytes; see + * 4.4.23 size of the central directory + * + * Due to all that, zip32 is used if the size is below 4GB and there are + * less than 65536 files; the margin between 4*1000^3 and 4*1024^3 + * should give enough room for the extra zip metadata. Technically, it + * would still be possible to create an invalid zip32 file (for example, + * a zip file from files smaller than 4GB with a central directory + * larger than 4GiB), but it should not happen in the real world. + */ + if ($size < 4 * 1000 * 1000 * 1000 && $numberOfFiles < 65536) { + $this->streamerInstance = new ZipStreamer(['zip64' => true]); + } else if ($request->isUserAgent($this->preferTarFor)) { + $this->streamerInstance = new TarStreamer(); + } else { + $this->streamerInstance = new ZipStreamer(['zip64' => PHP_INT_SIZE !== 4]); + } + } + + /** + * Send HTTP headers + * @param string $name + */ + public function sendHeaders($name){ + $extension = $this->streamerInstance instanceof ZipStreamer ? '.zip' : '.tar'; + $fullName = $name . $extension; + $this->streamerInstance->sendHeaders($fullName); + } + + /** + * Stream directory recursively + * + * @throws NotFoundException + * @throws NotPermittedException + * @throws InvalidPathException + */ + public function addDirRecursive(string $dir, string $internalDir = ''): void { + $dirname = basename($dir); + $rootDir = $internalDir . $dirname; + if (!empty($rootDir)) { + $this->streamerInstance->addEmptyDir($rootDir); + } + $internalDir .= $dirname . '/'; + // prevent absolute dirs + $internalDir = ltrim($internalDir, '/'); + + $userFolder = \OC::$server->getRootFolder()->get(Filesystem::getRoot()); + /** @var Folder $dirNode */ + $dirNode = $userFolder->get($dir); + $files = $dirNode->getDirectoryListing(); + + foreach($files as $file) { + if($file instanceof File) { + try { + $fh = $file->fopen('r'); + } catch (NotPermittedException $e) { + continue; + } + $this->addFileFromStream( + $fh, + $internalDir . $file->getName(), + $file->getSize(), + $file->getMTime() + ); + fclose($fh); + } elseif ($file instanceof Folder) { + if($file->isReadable()) { + $this->addDirRecursive($dir . '/' . $file->getName(), $internalDir); + } + } + } + } + + /** + * Add a file to the archive at the specified location and file name. + * + * @param string $stream Stream to read data from + * @param string $internalName Filepath and name to be used in the archive. + * @param int $size Filesize + * @param int|bool $time File mtime as int, or false + * @return bool $success + */ + public function addFileFromStream($stream, $internalName, $size, $time) { + $options = []; + if ($time) { + $options = [ + 'timestamp' => $time + ]; + } + + if ($this->streamerInstance instanceof ZipStreamer) { + return $this->streamerInstance->addFileFromStream($stream, $internalName, $options); + } else { + return $this->streamerInstance->addFileFromStream($stream, $internalName, $size, $options); + } + } + + /** + * Add an empty directory entry to the archive. + * + * @param string $dirName Directory Path and name to be added to the archive. + * @return bool $success + */ + public function addEmptyDir($dirName){ + return $this->streamerInstance->addEmptyDir($dirName); + } + + /** + * Close the archive. + * A closed archive can no longer have new files added to it. After + * closing, the file is completely written to the output stream. + * @return bool $success + */ + public function finalize(){ + return $this->streamerInstance->finalize(); + } +} diff --git a/linux/advanced/nextcloud/patched/latest/docker-compose.yml b/linux/advanced/nextcloud/patched/latest/docker-compose.yml new file mode 100644 index 000000000..b37226e14 --- /dev/null +++ b/linux/advanced/nextcloud/patched/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:latest-patched" + build: + context: . diff --git a/linux/advanced/nextcloud/pure/14/Dockerfile b/linux/advanced/nextcloud/pure/14/Dockerfile new file mode 100644 index 000000000..b505769ae --- /dev/null +++ b/linux/advanced/nextcloud/pure/14/Dockerfile @@ -0,0 +1,68 @@ +FROM nextcloud:14 +ENV DEBIAN_FRONTEND noninteractive + +################################################################## +# adding normal sources list +################################################################## +RUN rm /etc/apt/sources.list +COPY sources.list /etc/apt/sources.list + +################################################################## +# adding some utils +################################################################## +RUN apt update -y && \ + apt dist-upgrade -y && \ + apt install -y --allow-unauthenticated \ + apt-transport-https \ + curl \ + ca-certificates \ + ghostscript \ + nload \ + htop \ + mc \ + nano \ + sudo \ + imagemagick \ + imagemagick-common \ + sqlite3 \ + smbclient \ + libsmbclient \ + wget \ + net-tools \ + iputils-ping + + +################################################################## +# installing php repo + smbclient +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN apt update -y && \ + apt install -y --allow-unauthenticated \ + libsmbclient-dev \ + libmagickwand-dev \ + libmagickcore-dev \ + libc-client-dev \ + libkrb5-dev \ + libsqlite3-dev \ + libssl-dev + +RUN pecl install inotify && \ + docker-php-ext-enable inotify + +RUN pecl install smbclient && \ + docker-php-ext-enable smbclient + +RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ + docker-php-ext-install imap && \ + docker-php-ext-enable imap + +RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ + docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite + +################################################################## +# smb fix +################################################################## +RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf +ADD smb.conf /etc/samba/ +ADD smb.conf /usr/share/samba/ diff --git a/linux/advanced/nextcloud/pure/14/Makefile b/linux/advanced/nextcloud/pure/14/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/pure/14/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/nextcloud/pure/14/README.md b/linux/advanced/nextcloud/pure/14/README.md new file mode 100644 index 000000000..b6df71808 --- /dev/null +++ b/linux/advanced/nextcloud/pure/14/README.md @@ -0,0 +1,527 @@ +# What is Nextcloud? + +[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages) +[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh) +[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud) +[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud) +[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud) +[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud) +[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud) +[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud) +[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud) +[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud) +[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud) + +A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. + +![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg) + +# How to use this image +This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from. + +The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified. + +The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container. + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml) + +## Using the apache image +The apache image contains a webserver and exposes port 80. To start the container type: + +```console +$ docker run -d -p 8080:80 nextcloud +``` + +Now you can access Nextcloud at http://localhost:8080/ from your host system. + + +## Using the fpm image +To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. +If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). +In both cases you don't want to map the fpm port to your host. + +```console +$ docker run -d nextcloud:fpm +``` + +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). + +## Using an external database +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. + +## Persistent data +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. + +A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. + +Nextcloud: +- `/var/www/html/` folder where all nextcloud data lives +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +nextcloud +``` + +Database: +- `/var/lib/mysql` MySQL / MariaDB Data +- `/var/lib/postgresql/data` PostgreSQL Data +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb +``` + +If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. +The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. + +Overview of the folders that can be mounted as volumes: + +- `/var/www/html` Main folder, needed for updating +- `/var/www/html/custom_apps` installed / modified apps +- `/var/www/html/config` local configuration +- `/var/www/html/data` the actual data of your Nextcloud +- `/var/www/html/themes/` theming/branding + +If you want to use named volumes for all of these, it would look like this: +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +nextcloud +``` + +## Using the Nextcloud command-line interface +To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): +```console +$ docker exec --user www-data CONTAINER_ID php occ +``` +or for docker-compose: +```console +$ docker-compose exec --user www-data app php occ +``` + +## Auto configuration via environment variables +The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type! + +__SQLite__: +- `SQLITE_DATABASE` Name of the database using sqlite + +__MYSQL/MariaDB__: +- `MYSQL_DATABASE` Name of the database using mysql / mariadb. +- `MYSQL_USER` Username for the database using mysql / mariadb. +- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb. +- `MYSQL_HOST` Hostname of the database server using mysql / mariadb. + +__PostgreSQL__: +- `POSTGRES_DB` Name of the database using postgres. +- `POSTGRES_USER` Username for the database using postgres. +- `POSTGRES_PASSWORD` Password for the database user using postgres. +- `POSTGRES_HOST` Hostname of the database server using postgres. + +If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): + +- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user. +- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user. + +If you want, you can set the data directory, otherwise default value will be used. + +- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users. + +One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install. + +- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains + +The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with + +- `NEXTCLOUD_UPDATE` (default: _0_) + +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: + +- `REDIS_HOST` (not set by default) Name of Redis container +- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports. +- `REDIS_HOST_PASSWORD` (not set by default) Redis password + +The use of Redis is recommended to prevent file locking problems. See the examples for further instructions. + +To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add: + +- `SMTP_HOST` (not set by default): The hostname of the SMTP server. +- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS. +- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS. +- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. +- `SMTP_NAME` (empty by default): The username for the authentication. +- `SMTP_PASSWORD` (empty by default): The password for the authentication. +- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. + +To use an external S3 compatible object store as primary storage, set the following variables: +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_KEY`: AWS style access key +- `OBJECTSTORE_S3_SECRET`: AWS style secret access key +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. +- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. + +To use an external OpenStack Swift object store as primary storage, set the following variables: +- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint +- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container +- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username +- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password +- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain +- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name +- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain +- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name +- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region +- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information. + + +## Using the apache image behind a reverse proxy and auto configure server host and protocol + +The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`. + +- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip. + +- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4. + +If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters. + +- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port. +- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https. +- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy. +- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address. + +Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details. + +Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. + +# Running this image with docker-compose +The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. + +At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. + +## Base version - apache +This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud + ports: + - 8080:80 + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +## Base version - FPM +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). + +As this setup does **not include encryption**, it should be run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud:fpm + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + + web: + image: nginx + ports: + - 8080:80 + links: + - app + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + volumes_from: + - app + restart: always +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +# Docker Secrets +As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: +```yaml +version: '3.2' + +services: + db: + image: postgres + restart: always + volumes: + - db:/var/lib/postgresql/data + environment: + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + secrets: + - postgres_db + - postgres_password + - postgres_user + + app: + image: nextcloud + restart: always + ports: + - 8080:80 + volumes: + - nextcloud:/var/www/html + environment: + - POSTGRES_HOST=db + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password + - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user + depends_on: + - db + secrets: + - nextcloud_admin_password + - nextcloud_admin_user + - postgres_db + - postgres_password + - postgres_user + +volumes: + db: + nextcloud: + +secrets: + nextcloud_admin_password: + file: ./nextcloud_admin_password.txt # put admin password to this file + nextcloud_admin_user: + file: ./nextcloud_admin_user.txt # put admin username to this file + postgres_db: + file: ./postgres_db.txt # put postgresql db name to this file + postgres_password: + file: ./postgres_password.txt # put postgresql password to this file + postgres_user: + file: ./postgres_user.txt # put postgresql username to this file +``` + +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`. + +# Make your Nextcloud available from the internet +Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory. + +## HTTPS - SSL encryption +There are many different possibilities to introduce encryption depending on your setup. + +We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you. + +In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup. + +# First use +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. + +# Update to a newer version +Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one. + +**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.** + +Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected. + +```console +$ docker pull nextcloud +$ docker stop +$ docker rm +$ docker run -d nextcloud +``` +Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. + +When using docker-compose your compose file takes care of your configuration, so you just have to run: + +```console +$ docker-compose pull +$ docker-compose up -d +``` + + +# Adding Features +A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it. +Start your derived image with the `FROM` statement and add whatever you like. + +```yaml +FROM nextcloud:apache + +RUN ... + +``` +The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. + +If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) + +```yaml + app: + build: . + links: + - db + volumes: + - data:/var/www/html/data + - config:/var/www/html/config + - apps:/var/www/html/apps + restart: always +``` + +If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work. + +```yaml +FROM nextcloud:apache + +... + +ENV NEXTCLOUD_UPDATE=1 + +CMD ["/usr/bin/supervisord"] +``` + + +**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run: + +```console +docker build -t your-name --pull . +docker run -d your-name +``` + +or for docker-compose: +```console +docker-compose build --pull +docker-compose up -d +``` + +The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. + +# Migrating an existing installation +You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: + +1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) + - To import from a MySQL dump use the following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` + - To import from a PostgreSQL dump use to following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` +3. Edit your config.php + 1. Set database connection + - In case of MySQL database + ```php + 'dbhost' => 'db:3306', + ``` + - In case of PostgreSQL database + ```php + 'dbhost' => 'db:5432', + ``` + 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these + ```diff + - "apps_paths" => array ( + - 0 => array ( + - "path" => OC::$SERVERROOT."/apps", + - "url" => "/apps", + - "writable" => true, + - ), + ``` + 3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable + ```php + 'apps_paths' => array ( + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), + ), + ``` + 4. Make sure your data directory is set to /var/www/html/data + ```php + 'datadirectory' => '/var/www/html/data', + ``` + + +4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container): +```console +docker cp ./data/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/data +docker cp ./theming/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/theming +docker cp ./config/config.php nextcloud_app_1:/var/www/html/config +docker-compose exec app chown -R www-data:www-data /var/www/html/config +``` +5. Copy only the custom apps you use (or simply redownload them from the web interface): +```console +docker cp ./custom_apps/ nextcloud_data:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps +``` + +# Questions / Issues +If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue. diff --git a/linux/advanced/nextcloud/pure/14/docker-compose.yml b/linux/advanced/nextcloud/pure/14/docker-compose.yml new file mode 100644 index 000000000..f5201d94a --- /dev/null +++ b/linux/advanced/nextcloud/pure/14/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:14" + build: + context: . diff --git a/linux/nextcloud/14/smb.conf b/linux/advanced/nextcloud/pure/14/smb.conf similarity index 100% rename from linux/nextcloud/14/smb.conf rename to linux/advanced/nextcloud/pure/14/smb.conf diff --git a/linux/advanced/nextcloud/pure/14/sources.list b/linux/advanced/nextcloud/pure/14/sources.list new file mode 100644 index 000000000..5a8c0081a --- /dev/null +++ b/linux/advanced/nextcloud/pure/14/sources.list @@ -0,0 +1,21 @@ +#main +deb http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free + +##multimedia +# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main diff --git a/linux/advanced/nextcloud/pure/15/Dockerfile b/linux/advanced/nextcloud/pure/15/Dockerfile new file mode 100644 index 000000000..343a7a71f --- /dev/null +++ b/linux/advanced/nextcloud/pure/15/Dockerfile @@ -0,0 +1,68 @@ +FROM nextcloud:15 +ENV DEBIAN_FRONTEND noninteractive + +################################################################## +# adding normal sources list +################################################################## +RUN rm /etc/apt/sources.list +COPY sources.list /etc/apt/sources.list + +################################################################## +# adding some utils +################################################################## +RUN apt update -y && \ + apt dist-upgrade -y && \ + apt install -y --allow-unauthenticated \ + apt-transport-https \ + curl \ + ca-certificates \ + ghostscript \ + nload \ + htop \ + mc \ + nano \ + sudo \ + imagemagick \ + imagemagick-common \ + sqlite3 \ + smbclient \ + libsmbclient \ + wget \ + net-tools \ + iputils-ping + + +################################################################## +# installing php repo + smbclient +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN apt update -y && \ + apt install -y --allow-unauthenticated \ + libsmbclient-dev \ + libmagickwand-dev \ + libmagickcore-dev \ + libc-client-dev \ + libkrb5-dev \ + libsqlite3-dev \ + libssl-dev + +RUN pecl install inotify && \ + docker-php-ext-enable inotify + +RUN pecl install smbclient && \ + docker-php-ext-enable smbclient + +RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ + docker-php-ext-install imap && \ + docker-php-ext-enable imap + +RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ + docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite + +################################################################## +# smb fix +################################################################## +RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf +ADD smb.conf /etc/samba/ +ADD smb.conf /usr/share/samba/ diff --git a/linux/advanced/nextcloud/pure/15/Makefile b/linux/advanced/nextcloud/pure/15/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/pure/15/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/nextcloud/pure/15/README.md b/linux/advanced/nextcloud/pure/15/README.md new file mode 100644 index 000000000..b6df71808 --- /dev/null +++ b/linux/advanced/nextcloud/pure/15/README.md @@ -0,0 +1,527 @@ +# What is Nextcloud? + +[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages) +[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh) +[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud) +[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud) +[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud) +[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud) +[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud) +[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud) +[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud) +[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud) +[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud) + +A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. + +![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg) + +# How to use this image +This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from. + +The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified. + +The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container. + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml) + +## Using the apache image +The apache image contains a webserver and exposes port 80. To start the container type: + +```console +$ docker run -d -p 8080:80 nextcloud +``` + +Now you can access Nextcloud at http://localhost:8080/ from your host system. + + +## Using the fpm image +To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. +If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). +In both cases you don't want to map the fpm port to your host. + +```console +$ docker run -d nextcloud:fpm +``` + +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). + +## Using an external database +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. + +## Persistent data +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. + +A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. + +Nextcloud: +- `/var/www/html/` folder where all nextcloud data lives +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +nextcloud +``` + +Database: +- `/var/lib/mysql` MySQL / MariaDB Data +- `/var/lib/postgresql/data` PostgreSQL Data +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb +``` + +If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. +The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. + +Overview of the folders that can be mounted as volumes: + +- `/var/www/html` Main folder, needed for updating +- `/var/www/html/custom_apps` installed / modified apps +- `/var/www/html/config` local configuration +- `/var/www/html/data` the actual data of your Nextcloud +- `/var/www/html/themes/` theming/branding + +If you want to use named volumes for all of these, it would look like this: +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +nextcloud +``` + +## Using the Nextcloud command-line interface +To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): +```console +$ docker exec --user www-data CONTAINER_ID php occ +``` +or for docker-compose: +```console +$ docker-compose exec --user www-data app php occ +``` + +## Auto configuration via environment variables +The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type! + +__SQLite__: +- `SQLITE_DATABASE` Name of the database using sqlite + +__MYSQL/MariaDB__: +- `MYSQL_DATABASE` Name of the database using mysql / mariadb. +- `MYSQL_USER` Username for the database using mysql / mariadb. +- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb. +- `MYSQL_HOST` Hostname of the database server using mysql / mariadb. + +__PostgreSQL__: +- `POSTGRES_DB` Name of the database using postgres. +- `POSTGRES_USER` Username for the database using postgres. +- `POSTGRES_PASSWORD` Password for the database user using postgres. +- `POSTGRES_HOST` Hostname of the database server using postgres. + +If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): + +- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user. +- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user. + +If you want, you can set the data directory, otherwise default value will be used. + +- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users. + +One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install. + +- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains + +The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with + +- `NEXTCLOUD_UPDATE` (default: _0_) + +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: + +- `REDIS_HOST` (not set by default) Name of Redis container +- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports. +- `REDIS_HOST_PASSWORD` (not set by default) Redis password + +The use of Redis is recommended to prevent file locking problems. See the examples for further instructions. + +To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add: + +- `SMTP_HOST` (not set by default): The hostname of the SMTP server. +- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS. +- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS. +- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. +- `SMTP_NAME` (empty by default): The username for the authentication. +- `SMTP_PASSWORD` (empty by default): The password for the authentication. +- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. + +To use an external S3 compatible object store as primary storage, set the following variables: +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_KEY`: AWS style access key +- `OBJECTSTORE_S3_SECRET`: AWS style secret access key +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. +- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. + +To use an external OpenStack Swift object store as primary storage, set the following variables: +- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint +- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container +- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username +- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password +- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain +- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name +- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain +- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name +- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region +- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information. + + +## Using the apache image behind a reverse proxy and auto configure server host and protocol + +The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`. + +- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip. + +- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4. + +If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters. + +- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port. +- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https. +- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy. +- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address. + +Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details. + +Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. + +# Running this image with docker-compose +The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. + +At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. + +## Base version - apache +This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud + ports: + - 8080:80 + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +## Base version - FPM +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). + +As this setup does **not include encryption**, it should be run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud:fpm + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + + web: + image: nginx + ports: + - 8080:80 + links: + - app + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + volumes_from: + - app + restart: always +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +# Docker Secrets +As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: +```yaml +version: '3.2' + +services: + db: + image: postgres + restart: always + volumes: + - db:/var/lib/postgresql/data + environment: + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + secrets: + - postgres_db + - postgres_password + - postgres_user + + app: + image: nextcloud + restart: always + ports: + - 8080:80 + volumes: + - nextcloud:/var/www/html + environment: + - POSTGRES_HOST=db + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password + - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user + depends_on: + - db + secrets: + - nextcloud_admin_password + - nextcloud_admin_user + - postgres_db + - postgres_password + - postgres_user + +volumes: + db: + nextcloud: + +secrets: + nextcloud_admin_password: + file: ./nextcloud_admin_password.txt # put admin password to this file + nextcloud_admin_user: + file: ./nextcloud_admin_user.txt # put admin username to this file + postgres_db: + file: ./postgres_db.txt # put postgresql db name to this file + postgres_password: + file: ./postgres_password.txt # put postgresql password to this file + postgres_user: + file: ./postgres_user.txt # put postgresql username to this file +``` + +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`. + +# Make your Nextcloud available from the internet +Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory. + +## HTTPS - SSL encryption +There are many different possibilities to introduce encryption depending on your setup. + +We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you. + +In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup. + +# First use +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. + +# Update to a newer version +Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one. + +**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.** + +Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected. + +```console +$ docker pull nextcloud +$ docker stop +$ docker rm +$ docker run -d nextcloud +``` +Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. + +When using docker-compose your compose file takes care of your configuration, so you just have to run: + +```console +$ docker-compose pull +$ docker-compose up -d +``` + + +# Adding Features +A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it. +Start your derived image with the `FROM` statement and add whatever you like. + +```yaml +FROM nextcloud:apache + +RUN ... + +``` +The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. + +If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) + +```yaml + app: + build: . + links: + - db + volumes: + - data:/var/www/html/data + - config:/var/www/html/config + - apps:/var/www/html/apps + restart: always +``` + +If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work. + +```yaml +FROM nextcloud:apache + +... + +ENV NEXTCLOUD_UPDATE=1 + +CMD ["/usr/bin/supervisord"] +``` + + +**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run: + +```console +docker build -t your-name --pull . +docker run -d your-name +``` + +or for docker-compose: +```console +docker-compose build --pull +docker-compose up -d +``` + +The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. + +# Migrating an existing installation +You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: + +1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) + - To import from a MySQL dump use the following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` + - To import from a PostgreSQL dump use to following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` +3. Edit your config.php + 1. Set database connection + - In case of MySQL database + ```php + 'dbhost' => 'db:3306', + ``` + - In case of PostgreSQL database + ```php + 'dbhost' => 'db:5432', + ``` + 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these + ```diff + - "apps_paths" => array ( + - 0 => array ( + - "path" => OC::$SERVERROOT."/apps", + - "url" => "/apps", + - "writable" => true, + - ), + ``` + 3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable + ```php + 'apps_paths' => array ( + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), + ), + ``` + 4. Make sure your data directory is set to /var/www/html/data + ```php + 'datadirectory' => '/var/www/html/data', + ``` + + +4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container): +```console +docker cp ./data/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/data +docker cp ./theming/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/theming +docker cp ./config/config.php nextcloud_app_1:/var/www/html/config +docker-compose exec app chown -R www-data:www-data /var/www/html/config +``` +5. Copy only the custom apps you use (or simply redownload them from the web interface): +```console +docker cp ./custom_apps/ nextcloud_data:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps +``` + +# Questions / Issues +If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue. diff --git a/linux/advanced/nextcloud/pure/15/docker-compose.yml b/linux/advanced/nextcloud/pure/15/docker-compose.yml new file mode 100644 index 000000000..d3e497a0f --- /dev/null +++ b/linux/advanced/nextcloud/pure/15/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:15" + build: + context: . diff --git a/linux/nextcloud/15/smb.conf b/linux/advanced/nextcloud/pure/15/smb.conf similarity index 100% rename from linux/nextcloud/15/smb.conf rename to linux/advanced/nextcloud/pure/15/smb.conf diff --git a/linux/advanced/nextcloud/pure/15/sources.list b/linux/advanced/nextcloud/pure/15/sources.list new file mode 100644 index 000000000..5a8c0081a --- /dev/null +++ b/linux/advanced/nextcloud/pure/15/sources.list @@ -0,0 +1,21 @@ +#main +deb http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free + +##multimedia +# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main diff --git a/linux/advanced/nextcloud/pure/16/Dockerfile b/linux/advanced/nextcloud/pure/16/Dockerfile new file mode 100644 index 000000000..b96e667f2 --- /dev/null +++ b/linux/advanced/nextcloud/pure/16/Dockerfile @@ -0,0 +1,68 @@ +FROM nextcloud:16 +ENV DEBIAN_FRONTEND noninteractive + +################################################################## +# adding normal sources list +################################################################## +RUN rm /etc/apt/sources.list +COPY sources.list /etc/apt/sources.list + +################################################################## +# adding some utils +################################################################## +RUN apt update -y && \ + apt dist-upgrade -y && \ + apt install -y --allow-unauthenticated \ + apt-transport-https \ + curl \ + ca-certificates \ + ghostscript \ + nload \ + htop \ + mc \ + nano \ + sudo \ + imagemagick \ + imagemagick-common \ + sqlite3 \ + smbclient \ + libsmbclient \ + wget \ + net-tools \ + iputils-ping + + +################################################################## +# installing php repo + smbclient +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN apt update -y && \ + apt install -y --allow-unauthenticated \ + libsmbclient-dev \ + libmagickwand-dev \ + libmagickcore-dev \ + libc-client-dev \ + libkrb5-dev \ + libsqlite3-dev \ + libssl-dev + +RUN pecl install inotify && \ + docker-php-ext-enable inotify + +RUN pecl install smbclient && \ + docker-php-ext-enable smbclient + +RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ + docker-php-ext-install imap && \ + docker-php-ext-enable imap + +RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ + docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite + +################################################################## +# smb fix +################################################################## +RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf +ADD smb.conf /etc/samba/ +ADD smb.conf /usr/share/samba/ diff --git a/linux/advanced/nextcloud/pure/16/Makefile b/linux/advanced/nextcloud/pure/16/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/pure/16/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/nextcloud/pure/16/README.md b/linux/advanced/nextcloud/pure/16/README.md new file mode 100644 index 000000000..b6df71808 --- /dev/null +++ b/linux/advanced/nextcloud/pure/16/README.md @@ -0,0 +1,527 @@ +# What is Nextcloud? + +[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages) +[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh) +[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud) +[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud) +[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud) +[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud) +[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud) +[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud) +[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud) +[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud) +[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud) + +A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. + +![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg) + +# How to use this image +This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from. + +The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified. + +The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container. + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml) + +## Using the apache image +The apache image contains a webserver and exposes port 80. To start the container type: + +```console +$ docker run -d -p 8080:80 nextcloud +``` + +Now you can access Nextcloud at http://localhost:8080/ from your host system. + + +## Using the fpm image +To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. +If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). +In both cases you don't want to map the fpm port to your host. + +```console +$ docker run -d nextcloud:fpm +``` + +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). + +## Using an external database +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. + +## Persistent data +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. + +A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. + +Nextcloud: +- `/var/www/html/` folder where all nextcloud data lives +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +nextcloud +``` + +Database: +- `/var/lib/mysql` MySQL / MariaDB Data +- `/var/lib/postgresql/data` PostgreSQL Data +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb +``` + +If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. +The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. + +Overview of the folders that can be mounted as volumes: + +- `/var/www/html` Main folder, needed for updating +- `/var/www/html/custom_apps` installed / modified apps +- `/var/www/html/config` local configuration +- `/var/www/html/data` the actual data of your Nextcloud +- `/var/www/html/themes/` theming/branding + +If you want to use named volumes for all of these, it would look like this: +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +nextcloud +``` + +## Using the Nextcloud command-line interface +To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): +```console +$ docker exec --user www-data CONTAINER_ID php occ +``` +or for docker-compose: +```console +$ docker-compose exec --user www-data app php occ +``` + +## Auto configuration via environment variables +The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type! + +__SQLite__: +- `SQLITE_DATABASE` Name of the database using sqlite + +__MYSQL/MariaDB__: +- `MYSQL_DATABASE` Name of the database using mysql / mariadb. +- `MYSQL_USER` Username for the database using mysql / mariadb. +- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb. +- `MYSQL_HOST` Hostname of the database server using mysql / mariadb. + +__PostgreSQL__: +- `POSTGRES_DB` Name of the database using postgres. +- `POSTGRES_USER` Username for the database using postgres. +- `POSTGRES_PASSWORD` Password for the database user using postgres. +- `POSTGRES_HOST` Hostname of the database server using postgres. + +If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): + +- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user. +- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user. + +If you want, you can set the data directory, otherwise default value will be used. + +- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users. + +One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install. + +- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains + +The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with + +- `NEXTCLOUD_UPDATE` (default: _0_) + +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: + +- `REDIS_HOST` (not set by default) Name of Redis container +- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports. +- `REDIS_HOST_PASSWORD` (not set by default) Redis password + +The use of Redis is recommended to prevent file locking problems. See the examples for further instructions. + +To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add: + +- `SMTP_HOST` (not set by default): The hostname of the SMTP server. +- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS. +- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS. +- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. +- `SMTP_NAME` (empty by default): The username for the authentication. +- `SMTP_PASSWORD` (empty by default): The password for the authentication. +- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. + +To use an external S3 compatible object store as primary storage, set the following variables: +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_KEY`: AWS style access key +- `OBJECTSTORE_S3_SECRET`: AWS style secret access key +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. +- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. + +To use an external OpenStack Swift object store as primary storage, set the following variables: +- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint +- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container +- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username +- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password +- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain +- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name +- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain +- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name +- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region +- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information. + + +## Using the apache image behind a reverse proxy and auto configure server host and protocol + +The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`. + +- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip. + +- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4. + +If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters. + +- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port. +- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https. +- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy. +- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address. + +Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details. + +Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. + +# Running this image with docker-compose +The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. + +At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. + +## Base version - apache +This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud + ports: + - 8080:80 + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +## Base version - FPM +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). + +As this setup does **not include encryption**, it should be run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud:fpm + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + + web: + image: nginx + ports: + - 8080:80 + links: + - app + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + volumes_from: + - app + restart: always +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +# Docker Secrets +As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: +```yaml +version: '3.2' + +services: + db: + image: postgres + restart: always + volumes: + - db:/var/lib/postgresql/data + environment: + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + secrets: + - postgres_db + - postgres_password + - postgres_user + + app: + image: nextcloud + restart: always + ports: + - 8080:80 + volumes: + - nextcloud:/var/www/html + environment: + - POSTGRES_HOST=db + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password + - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user + depends_on: + - db + secrets: + - nextcloud_admin_password + - nextcloud_admin_user + - postgres_db + - postgres_password + - postgres_user + +volumes: + db: + nextcloud: + +secrets: + nextcloud_admin_password: + file: ./nextcloud_admin_password.txt # put admin password to this file + nextcloud_admin_user: + file: ./nextcloud_admin_user.txt # put admin username to this file + postgres_db: + file: ./postgres_db.txt # put postgresql db name to this file + postgres_password: + file: ./postgres_password.txt # put postgresql password to this file + postgres_user: + file: ./postgres_user.txt # put postgresql username to this file +``` + +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`. + +# Make your Nextcloud available from the internet +Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory. + +## HTTPS - SSL encryption +There are many different possibilities to introduce encryption depending on your setup. + +We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you. + +In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup. + +# First use +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. + +# Update to a newer version +Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one. + +**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.** + +Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected. + +```console +$ docker pull nextcloud +$ docker stop +$ docker rm +$ docker run -d nextcloud +``` +Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. + +When using docker-compose your compose file takes care of your configuration, so you just have to run: + +```console +$ docker-compose pull +$ docker-compose up -d +``` + + +# Adding Features +A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it. +Start your derived image with the `FROM` statement and add whatever you like. + +```yaml +FROM nextcloud:apache + +RUN ... + +``` +The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. + +If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) + +```yaml + app: + build: . + links: + - db + volumes: + - data:/var/www/html/data + - config:/var/www/html/config + - apps:/var/www/html/apps + restart: always +``` + +If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work. + +```yaml +FROM nextcloud:apache + +... + +ENV NEXTCLOUD_UPDATE=1 + +CMD ["/usr/bin/supervisord"] +``` + + +**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run: + +```console +docker build -t your-name --pull . +docker run -d your-name +``` + +or for docker-compose: +```console +docker-compose build --pull +docker-compose up -d +``` + +The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. + +# Migrating an existing installation +You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: + +1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) + - To import from a MySQL dump use the following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` + - To import from a PostgreSQL dump use to following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` +3. Edit your config.php + 1. Set database connection + - In case of MySQL database + ```php + 'dbhost' => 'db:3306', + ``` + - In case of PostgreSQL database + ```php + 'dbhost' => 'db:5432', + ``` + 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these + ```diff + - "apps_paths" => array ( + - 0 => array ( + - "path" => OC::$SERVERROOT."/apps", + - "url" => "/apps", + - "writable" => true, + - ), + ``` + 3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable + ```php + 'apps_paths' => array ( + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), + ), + ``` + 4. Make sure your data directory is set to /var/www/html/data + ```php + 'datadirectory' => '/var/www/html/data', + ``` + + +4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container): +```console +docker cp ./data/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/data +docker cp ./theming/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/theming +docker cp ./config/config.php nextcloud_app_1:/var/www/html/config +docker-compose exec app chown -R www-data:www-data /var/www/html/config +``` +5. Copy only the custom apps you use (or simply redownload them from the web interface): +```console +docker cp ./custom_apps/ nextcloud_data:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps +``` + +# Questions / Issues +If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue. diff --git a/linux/advanced/nextcloud/pure/16/docker-compose.yml b/linux/advanced/nextcloud/pure/16/docker-compose.yml new file mode 100644 index 000000000..b62a895ea --- /dev/null +++ b/linux/advanced/nextcloud/pure/16/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:16" + build: + context: . diff --git a/linux/nextcloud/16/smb.conf b/linux/advanced/nextcloud/pure/16/smb.conf similarity index 100% rename from linux/nextcloud/16/smb.conf rename to linux/advanced/nextcloud/pure/16/smb.conf diff --git a/linux/advanced/nextcloud/pure/16/sources.list b/linux/advanced/nextcloud/pure/16/sources.list new file mode 100644 index 000000000..5a8c0081a --- /dev/null +++ b/linux/advanced/nextcloud/pure/16/sources.list @@ -0,0 +1,21 @@ +#main +deb http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free + +##multimedia +# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main diff --git a/linux/advanced/nextcloud/pure/17/Dockerfile b/linux/advanced/nextcloud/pure/17/Dockerfile new file mode 100644 index 000000000..05fb0013c --- /dev/null +++ b/linux/advanced/nextcloud/pure/17/Dockerfile @@ -0,0 +1,68 @@ +FROM nextcloud:17 +ENV DEBIAN_FRONTEND noninteractive + +################################################################## +# adding normal sources list +################################################################## +RUN rm /etc/apt/sources.list +COPY sources.list /etc/apt/sources.list + +################################################################## +# adding some utils +################################################################## +RUN apt update -y && \ + apt dist-upgrade -y && \ + apt install -y --allow-unauthenticated \ + apt-transport-https \ + curl \ + ca-certificates \ + ghostscript \ + nload \ + htop \ + mc \ + nano \ + sudo \ + imagemagick \ + imagemagick-common \ + sqlite3 \ + smbclient \ + libsmbclient \ + wget \ + net-tools \ + iputils-ping + + +################################################################## +# installing php repo + smbclient +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN apt update -y && \ + apt install -y --allow-unauthenticated \ + libsmbclient-dev \ + libmagickwand-dev \ + libmagickcore-dev \ + libc-client-dev \ + libkrb5-dev \ + libsqlite3-dev \ + libssl-dev + +RUN pecl install inotify && \ + docker-php-ext-enable inotify + +RUN pecl install smbclient && \ + docker-php-ext-enable smbclient + +RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ + docker-php-ext-install imap && \ + docker-php-ext-enable imap + +RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ + docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite + +################################################################## +# smb fix +################################################################## +RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf +ADD smb.conf /etc/samba/ +ADD smb.conf /usr/share/samba/ diff --git a/linux/advanced/nextcloud/pure/17/Makefile b/linux/advanced/nextcloud/pure/17/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/pure/17/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/nextcloud/pure/17/README.md b/linux/advanced/nextcloud/pure/17/README.md new file mode 100644 index 000000000..b6df71808 --- /dev/null +++ b/linux/advanced/nextcloud/pure/17/README.md @@ -0,0 +1,527 @@ +# What is Nextcloud? + +[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages) +[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh) +[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud) +[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud) +[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud) +[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud) +[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud) +[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud) +[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud) +[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud) +[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud) + +A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. + +![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg) + +# How to use this image +This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from. + +The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified. + +The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container. + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml) + +## Using the apache image +The apache image contains a webserver and exposes port 80. To start the container type: + +```console +$ docker run -d -p 8080:80 nextcloud +``` + +Now you can access Nextcloud at http://localhost:8080/ from your host system. + + +## Using the fpm image +To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. +If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). +In both cases you don't want to map the fpm port to your host. + +```console +$ docker run -d nextcloud:fpm +``` + +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). + +## Using an external database +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. + +## Persistent data +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. + +A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. + +Nextcloud: +- `/var/www/html/` folder where all nextcloud data lives +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +nextcloud +``` + +Database: +- `/var/lib/mysql` MySQL / MariaDB Data +- `/var/lib/postgresql/data` PostgreSQL Data +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb +``` + +If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. +The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. + +Overview of the folders that can be mounted as volumes: + +- `/var/www/html` Main folder, needed for updating +- `/var/www/html/custom_apps` installed / modified apps +- `/var/www/html/config` local configuration +- `/var/www/html/data` the actual data of your Nextcloud +- `/var/www/html/themes/` theming/branding + +If you want to use named volumes for all of these, it would look like this: +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +nextcloud +``` + +## Using the Nextcloud command-line interface +To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): +```console +$ docker exec --user www-data CONTAINER_ID php occ +``` +or for docker-compose: +```console +$ docker-compose exec --user www-data app php occ +``` + +## Auto configuration via environment variables +The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type! + +__SQLite__: +- `SQLITE_DATABASE` Name of the database using sqlite + +__MYSQL/MariaDB__: +- `MYSQL_DATABASE` Name of the database using mysql / mariadb. +- `MYSQL_USER` Username for the database using mysql / mariadb. +- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb. +- `MYSQL_HOST` Hostname of the database server using mysql / mariadb. + +__PostgreSQL__: +- `POSTGRES_DB` Name of the database using postgres. +- `POSTGRES_USER` Username for the database using postgres. +- `POSTGRES_PASSWORD` Password for the database user using postgres. +- `POSTGRES_HOST` Hostname of the database server using postgres. + +If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): + +- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user. +- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user. + +If you want, you can set the data directory, otherwise default value will be used. + +- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users. + +One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install. + +- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains + +The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with + +- `NEXTCLOUD_UPDATE` (default: _0_) + +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: + +- `REDIS_HOST` (not set by default) Name of Redis container +- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports. +- `REDIS_HOST_PASSWORD` (not set by default) Redis password + +The use of Redis is recommended to prevent file locking problems. See the examples for further instructions. + +To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add: + +- `SMTP_HOST` (not set by default): The hostname of the SMTP server. +- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS. +- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS. +- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. +- `SMTP_NAME` (empty by default): The username for the authentication. +- `SMTP_PASSWORD` (empty by default): The password for the authentication. +- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. + +To use an external S3 compatible object store as primary storage, set the following variables: +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_KEY`: AWS style access key +- `OBJECTSTORE_S3_SECRET`: AWS style secret access key +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. +- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. + +To use an external OpenStack Swift object store as primary storage, set the following variables: +- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint +- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container +- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username +- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password +- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain +- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name +- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain +- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name +- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region +- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information. + + +## Using the apache image behind a reverse proxy and auto configure server host and protocol + +The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`. + +- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip. + +- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4. + +If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters. + +- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port. +- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https. +- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy. +- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address. + +Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details. + +Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. + +# Running this image with docker-compose +The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. + +At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. + +## Base version - apache +This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud + ports: + - 8080:80 + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +## Base version - FPM +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). + +As this setup does **not include encryption**, it should be run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud:fpm + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + + web: + image: nginx + ports: + - 8080:80 + links: + - app + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + volumes_from: + - app + restart: always +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +# Docker Secrets +As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: +```yaml +version: '3.2' + +services: + db: + image: postgres + restart: always + volumes: + - db:/var/lib/postgresql/data + environment: + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + secrets: + - postgres_db + - postgres_password + - postgres_user + + app: + image: nextcloud + restart: always + ports: + - 8080:80 + volumes: + - nextcloud:/var/www/html + environment: + - POSTGRES_HOST=db + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password + - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user + depends_on: + - db + secrets: + - nextcloud_admin_password + - nextcloud_admin_user + - postgres_db + - postgres_password + - postgres_user + +volumes: + db: + nextcloud: + +secrets: + nextcloud_admin_password: + file: ./nextcloud_admin_password.txt # put admin password to this file + nextcloud_admin_user: + file: ./nextcloud_admin_user.txt # put admin username to this file + postgres_db: + file: ./postgres_db.txt # put postgresql db name to this file + postgres_password: + file: ./postgres_password.txt # put postgresql password to this file + postgres_user: + file: ./postgres_user.txt # put postgresql username to this file +``` + +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`. + +# Make your Nextcloud available from the internet +Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory. + +## HTTPS - SSL encryption +There are many different possibilities to introduce encryption depending on your setup. + +We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you. + +In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup. + +# First use +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. + +# Update to a newer version +Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one. + +**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.** + +Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected. + +```console +$ docker pull nextcloud +$ docker stop +$ docker rm +$ docker run -d nextcloud +``` +Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. + +When using docker-compose your compose file takes care of your configuration, so you just have to run: + +```console +$ docker-compose pull +$ docker-compose up -d +``` + + +# Adding Features +A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it. +Start your derived image with the `FROM` statement and add whatever you like. + +```yaml +FROM nextcloud:apache + +RUN ... + +``` +The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. + +If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) + +```yaml + app: + build: . + links: + - db + volumes: + - data:/var/www/html/data + - config:/var/www/html/config + - apps:/var/www/html/apps + restart: always +``` + +If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work. + +```yaml +FROM nextcloud:apache + +... + +ENV NEXTCLOUD_UPDATE=1 + +CMD ["/usr/bin/supervisord"] +``` + + +**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run: + +```console +docker build -t your-name --pull . +docker run -d your-name +``` + +or for docker-compose: +```console +docker-compose build --pull +docker-compose up -d +``` + +The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. + +# Migrating an existing installation +You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: + +1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) + - To import from a MySQL dump use the following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` + - To import from a PostgreSQL dump use to following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` +3. Edit your config.php + 1. Set database connection + - In case of MySQL database + ```php + 'dbhost' => 'db:3306', + ``` + - In case of PostgreSQL database + ```php + 'dbhost' => 'db:5432', + ``` + 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these + ```diff + - "apps_paths" => array ( + - 0 => array ( + - "path" => OC::$SERVERROOT."/apps", + - "url" => "/apps", + - "writable" => true, + - ), + ``` + 3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable + ```php + 'apps_paths' => array ( + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), + ), + ``` + 4. Make sure your data directory is set to /var/www/html/data + ```php + 'datadirectory' => '/var/www/html/data', + ``` + + +4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container): +```console +docker cp ./data/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/data +docker cp ./theming/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/theming +docker cp ./config/config.php nextcloud_app_1:/var/www/html/config +docker-compose exec app chown -R www-data:www-data /var/www/html/config +``` +5. Copy only the custom apps you use (or simply redownload them from the web interface): +```console +docker cp ./custom_apps/ nextcloud_data:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps +``` + +# Questions / Issues +If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue. diff --git a/linux/advanced/nextcloud/pure/17/docker-compose.yml b/linux/advanced/nextcloud/pure/17/docker-compose.yml new file mode 100644 index 000000000..61c86987f --- /dev/null +++ b/linux/advanced/nextcloud/pure/17/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:17" + build: + context: . diff --git a/linux/nextcloud/17/smb.conf b/linux/advanced/nextcloud/pure/17/smb.conf similarity index 100% rename from linux/nextcloud/17/smb.conf rename to linux/advanced/nextcloud/pure/17/smb.conf diff --git a/linux/advanced/nextcloud/pure/17/sources.list b/linux/advanced/nextcloud/pure/17/sources.list new file mode 100644 index 000000000..5a8c0081a --- /dev/null +++ b/linux/advanced/nextcloud/pure/17/sources.list @@ -0,0 +1,21 @@ +#main +deb http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free + +##multimedia +# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main diff --git a/linux/advanced/nextcloud/pure/18/Dockerfile b/linux/advanced/nextcloud/pure/18/Dockerfile new file mode 100644 index 000000000..aed264e6c --- /dev/null +++ b/linux/advanced/nextcloud/pure/18/Dockerfile @@ -0,0 +1,68 @@ +FROM nextcloud:18 +ENV DEBIAN_FRONTEND noninteractive + +################################################################## +# adding normal sources list +################################################################## +RUN rm /etc/apt/sources.list +COPY sources.list /etc/apt/sources.list + +################################################################## +# adding some utils +################################################################## +RUN apt update -y && \ + apt dist-upgrade -y && \ + apt install -y --allow-unauthenticated \ + apt-transport-https \ + curl \ + ca-certificates \ + ghostscript \ + nload \ + htop \ + mc \ + nano \ + sudo \ + imagemagick \ + imagemagick-common \ + sqlite3 \ + smbclient \ + libsmbclient \ + wget \ + net-tools \ + iputils-ping + + +################################################################## +# installing php repo + smbclient +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN apt update -y && \ + apt install -y --allow-unauthenticated \ + libsmbclient-dev \ + libmagickwand-dev \ + libmagickcore-dev \ + libc-client-dev \ + libkrb5-dev \ + libsqlite3-dev \ + libssl-dev + +RUN pecl install inotify && \ + docker-php-ext-enable inotify + +RUN pecl install smbclient && \ + docker-php-ext-enable smbclient + +RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ + docker-php-ext-install imap && \ + docker-php-ext-enable imap + +RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ + docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite + +################################################################## +# smb fix +################################################################## +RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf +ADD smb.conf /etc/samba/ +ADD smb.conf /usr/share/samba/ diff --git a/linux/advanced/nextcloud/pure/18/Makefile b/linux/advanced/nextcloud/pure/18/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/pure/18/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/nextcloud/pure/18/README.md b/linux/advanced/nextcloud/pure/18/README.md new file mode 100644 index 000000000..b6df71808 --- /dev/null +++ b/linux/advanced/nextcloud/pure/18/README.md @@ -0,0 +1,527 @@ +# What is Nextcloud? + +[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages) +[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh) +[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud) +[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud) +[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud) +[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud) +[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud) +[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud) +[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud) +[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud) +[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud) + +A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. + +![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg) + +# How to use this image +This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from. + +The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified. + +The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container. + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml) + +## Using the apache image +The apache image contains a webserver and exposes port 80. To start the container type: + +```console +$ docker run -d -p 8080:80 nextcloud +``` + +Now you can access Nextcloud at http://localhost:8080/ from your host system. + + +## Using the fpm image +To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. +If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). +In both cases you don't want to map the fpm port to your host. + +```console +$ docker run -d nextcloud:fpm +``` + +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). + +## Using an external database +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. + +## Persistent data +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. + +A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. + +Nextcloud: +- `/var/www/html/` folder where all nextcloud data lives +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +nextcloud +``` + +Database: +- `/var/lib/mysql` MySQL / MariaDB Data +- `/var/lib/postgresql/data` PostgreSQL Data +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb +``` + +If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. +The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. + +Overview of the folders that can be mounted as volumes: + +- `/var/www/html` Main folder, needed for updating +- `/var/www/html/custom_apps` installed / modified apps +- `/var/www/html/config` local configuration +- `/var/www/html/data` the actual data of your Nextcloud +- `/var/www/html/themes/` theming/branding + +If you want to use named volumes for all of these, it would look like this: +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +nextcloud +``` + +## Using the Nextcloud command-line interface +To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): +```console +$ docker exec --user www-data CONTAINER_ID php occ +``` +or for docker-compose: +```console +$ docker-compose exec --user www-data app php occ +``` + +## Auto configuration via environment variables +The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type! + +__SQLite__: +- `SQLITE_DATABASE` Name of the database using sqlite + +__MYSQL/MariaDB__: +- `MYSQL_DATABASE` Name of the database using mysql / mariadb. +- `MYSQL_USER` Username for the database using mysql / mariadb. +- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb. +- `MYSQL_HOST` Hostname of the database server using mysql / mariadb. + +__PostgreSQL__: +- `POSTGRES_DB` Name of the database using postgres. +- `POSTGRES_USER` Username for the database using postgres. +- `POSTGRES_PASSWORD` Password for the database user using postgres. +- `POSTGRES_HOST` Hostname of the database server using postgres. + +If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): + +- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user. +- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user. + +If you want, you can set the data directory, otherwise default value will be used. + +- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users. + +One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install. + +- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains + +The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with + +- `NEXTCLOUD_UPDATE` (default: _0_) + +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: + +- `REDIS_HOST` (not set by default) Name of Redis container +- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports. +- `REDIS_HOST_PASSWORD` (not set by default) Redis password + +The use of Redis is recommended to prevent file locking problems. See the examples for further instructions. + +To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add: + +- `SMTP_HOST` (not set by default): The hostname of the SMTP server. +- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS. +- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS. +- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. +- `SMTP_NAME` (empty by default): The username for the authentication. +- `SMTP_PASSWORD` (empty by default): The password for the authentication. +- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. + +To use an external S3 compatible object store as primary storage, set the following variables: +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_KEY`: AWS style access key +- `OBJECTSTORE_S3_SECRET`: AWS style secret access key +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. +- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. + +To use an external OpenStack Swift object store as primary storage, set the following variables: +- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint +- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container +- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username +- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password +- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain +- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name +- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain +- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name +- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region +- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information. + + +## Using the apache image behind a reverse proxy and auto configure server host and protocol + +The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`. + +- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip. + +- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4. + +If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters. + +- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port. +- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https. +- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy. +- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address. + +Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details. + +Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. + +# Running this image with docker-compose +The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. + +At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. + +## Base version - apache +This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud + ports: + - 8080:80 + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +## Base version - FPM +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). + +As this setup does **not include encryption**, it should be run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud:fpm + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + + web: + image: nginx + ports: + - 8080:80 + links: + - app + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + volumes_from: + - app + restart: always +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +# Docker Secrets +As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: +```yaml +version: '3.2' + +services: + db: + image: postgres + restart: always + volumes: + - db:/var/lib/postgresql/data + environment: + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + secrets: + - postgres_db + - postgres_password + - postgres_user + + app: + image: nextcloud + restart: always + ports: + - 8080:80 + volumes: + - nextcloud:/var/www/html + environment: + - POSTGRES_HOST=db + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password + - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user + depends_on: + - db + secrets: + - nextcloud_admin_password + - nextcloud_admin_user + - postgres_db + - postgres_password + - postgres_user + +volumes: + db: + nextcloud: + +secrets: + nextcloud_admin_password: + file: ./nextcloud_admin_password.txt # put admin password to this file + nextcloud_admin_user: + file: ./nextcloud_admin_user.txt # put admin username to this file + postgres_db: + file: ./postgres_db.txt # put postgresql db name to this file + postgres_password: + file: ./postgres_password.txt # put postgresql password to this file + postgres_user: + file: ./postgres_user.txt # put postgresql username to this file +``` + +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`. + +# Make your Nextcloud available from the internet +Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory. + +## HTTPS - SSL encryption +There are many different possibilities to introduce encryption depending on your setup. + +We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you. + +In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup. + +# First use +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. + +# Update to a newer version +Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one. + +**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.** + +Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected. + +```console +$ docker pull nextcloud +$ docker stop +$ docker rm +$ docker run -d nextcloud +``` +Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. + +When using docker-compose your compose file takes care of your configuration, so you just have to run: + +```console +$ docker-compose pull +$ docker-compose up -d +``` + + +# Adding Features +A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it. +Start your derived image with the `FROM` statement and add whatever you like. + +```yaml +FROM nextcloud:apache + +RUN ... + +``` +The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. + +If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) + +```yaml + app: + build: . + links: + - db + volumes: + - data:/var/www/html/data + - config:/var/www/html/config + - apps:/var/www/html/apps + restart: always +``` + +If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work. + +```yaml +FROM nextcloud:apache + +... + +ENV NEXTCLOUD_UPDATE=1 + +CMD ["/usr/bin/supervisord"] +``` + + +**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run: + +```console +docker build -t your-name --pull . +docker run -d your-name +``` + +or for docker-compose: +```console +docker-compose build --pull +docker-compose up -d +``` + +The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. + +# Migrating an existing installation +You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: + +1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) + - To import from a MySQL dump use the following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` + - To import from a PostgreSQL dump use to following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` +3. Edit your config.php + 1. Set database connection + - In case of MySQL database + ```php + 'dbhost' => 'db:3306', + ``` + - In case of PostgreSQL database + ```php + 'dbhost' => 'db:5432', + ``` + 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these + ```diff + - "apps_paths" => array ( + - 0 => array ( + - "path" => OC::$SERVERROOT."/apps", + - "url" => "/apps", + - "writable" => true, + - ), + ``` + 3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable + ```php + 'apps_paths' => array ( + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), + ), + ``` + 4. Make sure your data directory is set to /var/www/html/data + ```php + 'datadirectory' => '/var/www/html/data', + ``` + + +4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container): +```console +docker cp ./data/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/data +docker cp ./theming/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/theming +docker cp ./config/config.php nextcloud_app_1:/var/www/html/config +docker-compose exec app chown -R www-data:www-data /var/www/html/config +``` +5. Copy only the custom apps you use (or simply redownload them from the web interface): +```console +docker cp ./custom_apps/ nextcloud_data:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps +``` + +# Questions / Issues +If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue. diff --git a/linux/advanced/nextcloud/pure/18/docker-compose.yml b/linux/advanced/nextcloud/pure/18/docker-compose.yml new file mode 100644 index 000000000..1c1b6a5ce --- /dev/null +++ b/linux/advanced/nextcloud/pure/18/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:18" + build: + context: . diff --git a/linux/nextcloud/18/smb.conf b/linux/advanced/nextcloud/pure/18/smb.conf similarity index 100% rename from linux/nextcloud/18/smb.conf rename to linux/advanced/nextcloud/pure/18/smb.conf diff --git a/linux/advanced/nextcloud/pure/18/sources.list b/linux/advanced/nextcloud/pure/18/sources.list new file mode 100644 index 000000000..5a8c0081a --- /dev/null +++ b/linux/advanced/nextcloud/pure/18/sources.list @@ -0,0 +1,21 @@ +#main +deb http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free + +##multimedia +# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main diff --git a/linux/advanced/nextcloud/pure/19/Dockerfile b/linux/advanced/nextcloud/pure/19/Dockerfile new file mode 100644 index 000000000..f84a8408b --- /dev/null +++ b/linux/advanced/nextcloud/pure/19/Dockerfile @@ -0,0 +1,68 @@ +FROM nextcloud:19 +ENV DEBIAN_FRONTEND noninteractive + +################################################################## +# adding normal sources list +################################################################## +RUN rm /etc/apt/sources.list +COPY sources.list /etc/apt/sources.list + +################################################################## +# adding some utils +################################################################## +RUN apt update -y && \ + apt dist-upgrade -y && \ + apt install -y --allow-unauthenticated \ + apt-transport-https \ + curl \ + ca-certificates \ + ghostscript \ + nload \ + htop \ + mc \ + nano \ + sudo \ + imagemagick \ + imagemagick-common \ + sqlite3 \ + smbclient \ + libsmbclient \ + wget \ + net-tools \ + iputils-ping + + +################################################################## +# installing php repo + smbclient +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN apt update -y && \ + apt install -y --allow-unauthenticated \ + libsmbclient-dev \ + libmagickwand-dev \ + libmagickcore-dev \ + libc-client-dev \ + libkrb5-dev \ + libsqlite3-dev \ + libssl-dev + +RUN pecl install inotify && \ + docker-php-ext-enable inotify + +RUN pecl install smbclient && \ + docker-php-ext-enable smbclient + +RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ + docker-php-ext-install imap && \ + docker-php-ext-enable imap + +RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ + docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite + +################################################################## +# smb fix +################################################################## +RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf +ADD smb.conf /etc/samba/ +ADD smb.conf /usr/share/samba/ diff --git a/linux/advanced/nextcloud/pure/19/Makefile b/linux/advanced/nextcloud/pure/19/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/pure/19/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/nextcloud/pure/19/README.md b/linux/advanced/nextcloud/pure/19/README.md new file mode 100644 index 000000000..b6df71808 --- /dev/null +++ b/linux/advanced/nextcloud/pure/19/README.md @@ -0,0 +1,527 @@ +# What is Nextcloud? + +[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages) +[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh) +[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud) +[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud) +[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud) +[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud) +[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud) +[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud) +[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud) +[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud) +[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud) + +A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. + +![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg) + +# How to use this image +This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from. + +The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified. + +The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container. + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml) + +## Using the apache image +The apache image contains a webserver and exposes port 80. To start the container type: + +```console +$ docker run -d -p 8080:80 nextcloud +``` + +Now you can access Nextcloud at http://localhost:8080/ from your host system. + + +## Using the fpm image +To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. +If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). +In both cases you don't want to map the fpm port to your host. + +```console +$ docker run -d nextcloud:fpm +``` + +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). + +## Using an external database +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. + +## Persistent data +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. + +A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. + +Nextcloud: +- `/var/www/html/` folder where all nextcloud data lives +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +nextcloud +``` + +Database: +- `/var/lib/mysql` MySQL / MariaDB Data +- `/var/lib/postgresql/data` PostgreSQL Data +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb +``` + +If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. +The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. + +Overview of the folders that can be mounted as volumes: + +- `/var/www/html` Main folder, needed for updating +- `/var/www/html/custom_apps` installed / modified apps +- `/var/www/html/config` local configuration +- `/var/www/html/data` the actual data of your Nextcloud +- `/var/www/html/themes/` theming/branding + +If you want to use named volumes for all of these, it would look like this: +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +nextcloud +``` + +## Using the Nextcloud command-line interface +To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): +```console +$ docker exec --user www-data CONTAINER_ID php occ +``` +or for docker-compose: +```console +$ docker-compose exec --user www-data app php occ +``` + +## Auto configuration via environment variables +The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type! + +__SQLite__: +- `SQLITE_DATABASE` Name of the database using sqlite + +__MYSQL/MariaDB__: +- `MYSQL_DATABASE` Name of the database using mysql / mariadb. +- `MYSQL_USER` Username for the database using mysql / mariadb. +- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb. +- `MYSQL_HOST` Hostname of the database server using mysql / mariadb. + +__PostgreSQL__: +- `POSTGRES_DB` Name of the database using postgres. +- `POSTGRES_USER` Username for the database using postgres. +- `POSTGRES_PASSWORD` Password for the database user using postgres. +- `POSTGRES_HOST` Hostname of the database server using postgres. + +If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): + +- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user. +- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user. + +If you want, you can set the data directory, otherwise default value will be used. + +- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users. + +One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install. + +- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains + +The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with + +- `NEXTCLOUD_UPDATE` (default: _0_) + +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: + +- `REDIS_HOST` (not set by default) Name of Redis container +- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports. +- `REDIS_HOST_PASSWORD` (not set by default) Redis password + +The use of Redis is recommended to prevent file locking problems. See the examples for further instructions. + +To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add: + +- `SMTP_HOST` (not set by default): The hostname of the SMTP server. +- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS. +- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS. +- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. +- `SMTP_NAME` (empty by default): The username for the authentication. +- `SMTP_PASSWORD` (empty by default): The password for the authentication. +- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. + +To use an external S3 compatible object store as primary storage, set the following variables: +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_KEY`: AWS style access key +- `OBJECTSTORE_S3_SECRET`: AWS style secret access key +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. +- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. + +To use an external OpenStack Swift object store as primary storage, set the following variables: +- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint +- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container +- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username +- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password +- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain +- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name +- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain +- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name +- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region +- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information. + + +## Using the apache image behind a reverse proxy and auto configure server host and protocol + +The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`. + +- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip. + +- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4. + +If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters. + +- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port. +- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https. +- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy. +- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address. + +Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details. + +Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. + +# Running this image with docker-compose +The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. + +At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. + +## Base version - apache +This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud + ports: + - 8080:80 + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +## Base version - FPM +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). + +As this setup does **not include encryption**, it should be run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud:fpm + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + + web: + image: nginx + ports: + - 8080:80 + links: + - app + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + volumes_from: + - app + restart: always +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +# Docker Secrets +As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: +```yaml +version: '3.2' + +services: + db: + image: postgres + restart: always + volumes: + - db:/var/lib/postgresql/data + environment: + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + secrets: + - postgres_db + - postgres_password + - postgres_user + + app: + image: nextcloud + restart: always + ports: + - 8080:80 + volumes: + - nextcloud:/var/www/html + environment: + - POSTGRES_HOST=db + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password + - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user + depends_on: + - db + secrets: + - nextcloud_admin_password + - nextcloud_admin_user + - postgres_db + - postgres_password + - postgres_user + +volumes: + db: + nextcloud: + +secrets: + nextcloud_admin_password: + file: ./nextcloud_admin_password.txt # put admin password to this file + nextcloud_admin_user: + file: ./nextcloud_admin_user.txt # put admin username to this file + postgres_db: + file: ./postgres_db.txt # put postgresql db name to this file + postgres_password: + file: ./postgres_password.txt # put postgresql password to this file + postgres_user: + file: ./postgres_user.txt # put postgresql username to this file +``` + +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`. + +# Make your Nextcloud available from the internet +Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory. + +## HTTPS - SSL encryption +There are many different possibilities to introduce encryption depending on your setup. + +We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you. + +In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup. + +# First use +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. + +# Update to a newer version +Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one. + +**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.** + +Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected. + +```console +$ docker pull nextcloud +$ docker stop +$ docker rm +$ docker run -d nextcloud +``` +Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. + +When using docker-compose your compose file takes care of your configuration, so you just have to run: + +```console +$ docker-compose pull +$ docker-compose up -d +``` + + +# Adding Features +A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it. +Start your derived image with the `FROM` statement and add whatever you like. + +```yaml +FROM nextcloud:apache + +RUN ... + +``` +The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. + +If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) + +```yaml + app: + build: . + links: + - db + volumes: + - data:/var/www/html/data + - config:/var/www/html/config + - apps:/var/www/html/apps + restart: always +``` + +If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work. + +```yaml +FROM nextcloud:apache + +... + +ENV NEXTCLOUD_UPDATE=1 + +CMD ["/usr/bin/supervisord"] +``` + + +**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run: + +```console +docker build -t your-name --pull . +docker run -d your-name +``` + +or for docker-compose: +```console +docker-compose build --pull +docker-compose up -d +``` + +The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. + +# Migrating an existing installation +You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: + +1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) + - To import from a MySQL dump use the following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` + - To import from a PostgreSQL dump use to following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` +3. Edit your config.php + 1. Set database connection + - In case of MySQL database + ```php + 'dbhost' => 'db:3306', + ``` + - In case of PostgreSQL database + ```php + 'dbhost' => 'db:5432', + ``` + 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these + ```diff + - "apps_paths" => array ( + - 0 => array ( + - "path" => OC::$SERVERROOT."/apps", + - "url" => "/apps", + - "writable" => true, + - ), + ``` + 3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable + ```php + 'apps_paths' => array ( + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), + ), + ``` + 4. Make sure your data directory is set to /var/www/html/data + ```php + 'datadirectory' => '/var/www/html/data', + ``` + + +4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container): +```console +docker cp ./data/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/data +docker cp ./theming/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/theming +docker cp ./config/config.php nextcloud_app_1:/var/www/html/config +docker-compose exec app chown -R www-data:www-data /var/www/html/config +``` +5. Copy only the custom apps you use (or simply redownload them from the web interface): +```console +docker cp ./custom_apps/ nextcloud_data:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps +``` + +# Questions / Issues +If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue. diff --git a/linux/advanced/nextcloud/pure/19/docker-compose.yml b/linux/advanced/nextcloud/pure/19/docker-compose.yml new file mode 100644 index 000000000..53429226d --- /dev/null +++ b/linux/advanced/nextcloud/pure/19/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:19" + build: + context: . diff --git a/linux/nextcloud/19/smb.conf b/linux/advanced/nextcloud/pure/19/smb.conf similarity index 100% rename from linux/nextcloud/19/smb.conf rename to linux/advanced/nextcloud/pure/19/smb.conf diff --git a/linux/advanced/nextcloud/pure/19/sources.list b/linux/advanced/nextcloud/pure/19/sources.list new file mode 100644 index 000000000..5a8c0081a --- /dev/null +++ b/linux/advanced/nextcloud/pure/19/sources.list @@ -0,0 +1,21 @@ +#main +deb http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free + +##multimedia +# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main diff --git a/linux/advanced/nextcloud/pure/20/Dockerfile b/linux/advanced/nextcloud/pure/20/Dockerfile new file mode 100644 index 000000000..911405757 --- /dev/null +++ b/linux/advanced/nextcloud/pure/20/Dockerfile @@ -0,0 +1,68 @@ +FROM nextcloud:20 +ENV DEBIAN_FRONTEND noninteractive + +################################################################## +# adding normal sources list +################################################################## +RUN rm /etc/apt/sources.list +COPY sources.list /etc/apt/sources.list + +################################################################## +# adding some utils +################################################################## +RUN apt update -y && \ + apt dist-upgrade -y && \ + apt install -y --allow-unauthenticated \ + apt-transport-https \ + curl \ + ca-certificates \ + ghostscript \ + nload \ + htop \ + mc \ + nano \ + sudo \ + imagemagick \ + imagemagick-common \ + sqlite3 \ + smbclient \ + libsmbclient \ + wget \ + net-tools \ + iputils-ping + + +################################################################## +# installing php repo + smbclient +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN apt update -y && \ + apt install -y --allow-unauthenticated \ + libsmbclient-dev \ + libmagickwand-dev \ + libmagickcore-dev \ + libc-client-dev \ + libkrb5-dev \ + libsqlite3-dev \ + libssl-dev + +RUN pecl install inotify && \ + docker-php-ext-enable inotify + +RUN pecl install smbclient && \ + docker-php-ext-enable smbclient + +RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ + docker-php-ext-install imap && \ + docker-php-ext-enable imap + +RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ + docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite + +################################################################## +# smb fix +################################################################## +RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf +ADD smb.conf /etc/samba/ +ADD smb.conf /usr/share/samba/ diff --git a/linux/advanced/nextcloud/pure/20/Makefile b/linux/advanced/nextcloud/pure/20/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/pure/20/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/nextcloud/pure/20/README.md b/linux/advanced/nextcloud/pure/20/README.md new file mode 100644 index 000000000..b6df71808 --- /dev/null +++ b/linux/advanced/nextcloud/pure/20/README.md @@ -0,0 +1,527 @@ +# What is Nextcloud? + +[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages) +[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh) +[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud) +[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud) +[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud) +[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud) +[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud) +[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud) +[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud) +[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud) +[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud) + +A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. + +![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg) + +# How to use this image +This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from. + +The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified. + +The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container. + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml) + +## Using the apache image +The apache image contains a webserver and exposes port 80. To start the container type: + +```console +$ docker run -d -p 8080:80 nextcloud +``` + +Now you can access Nextcloud at http://localhost:8080/ from your host system. + + +## Using the fpm image +To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. +If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). +In both cases you don't want to map the fpm port to your host. + +```console +$ docker run -d nextcloud:fpm +``` + +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). + +## Using an external database +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. + +## Persistent data +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. + +A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. + +Nextcloud: +- `/var/www/html/` folder where all nextcloud data lives +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +nextcloud +``` + +Database: +- `/var/lib/mysql` MySQL / MariaDB Data +- `/var/lib/postgresql/data` PostgreSQL Data +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb +``` + +If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. +The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. + +Overview of the folders that can be mounted as volumes: + +- `/var/www/html` Main folder, needed for updating +- `/var/www/html/custom_apps` installed / modified apps +- `/var/www/html/config` local configuration +- `/var/www/html/data` the actual data of your Nextcloud +- `/var/www/html/themes/` theming/branding + +If you want to use named volumes for all of these, it would look like this: +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +nextcloud +``` + +## Using the Nextcloud command-line interface +To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): +```console +$ docker exec --user www-data CONTAINER_ID php occ +``` +or for docker-compose: +```console +$ docker-compose exec --user www-data app php occ +``` + +## Auto configuration via environment variables +The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type! + +__SQLite__: +- `SQLITE_DATABASE` Name of the database using sqlite + +__MYSQL/MariaDB__: +- `MYSQL_DATABASE` Name of the database using mysql / mariadb. +- `MYSQL_USER` Username for the database using mysql / mariadb. +- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb. +- `MYSQL_HOST` Hostname of the database server using mysql / mariadb. + +__PostgreSQL__: +- `POSTGRES_DB` Name of the database using postgres. +- `POSTGRES_USER` Username for the database using postgres. +- `POSTGRES_PASSWORD` Password for the database user using postgres. +- `POSTGRES_HOST` Hostname of the database server using postgres. + +If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): + +- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user. +- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user. + +If you want, you can set the data directory, otherwise default value will be used. + +- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users. + +One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install. + +- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains + +The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with + +- `NEXTCLOUD_UPDATE` (default: _0_) + +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: + +- `REDIS_HOST` (not set by default) Name of Redis container +- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports. +- `REDIS_HOST_PASSWORD` (not set by default) Redis password + +The use of Redis is recommended to prevent file locking problems. See the examples for further instructions. + +To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add: + +- `SMTP_HOST` (not set by default): The hostname of the SMTP server. +- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS. +- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS. +- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. +- `SMTP_NAME` (empty by default): The username for the authentication. +- `SMTP_PASSWORD` (empty by default): The password for the authentication. +- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. + +To use an external S3 compatible object store as primary storage, set the following variables: +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_KEY`: AWS style access key +- `OBJECTSTORE_S3_SECRET`: AWS style secret access key +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. +- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. + +To use an external OpenStack Swift object store as primary storage, set the following variables: +- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint +- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container +- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username +- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password +- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain +- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name +- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain +- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name +- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region +- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information. + + +## Using the apache image behind a reverse proxy and auto configure server host and protocol + +The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`. + +- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip. + +- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4. + +If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters. + +- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port. +- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https. +- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy. +- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address. + +Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details. + +Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. + +# Running this image with docker-compose +The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. + +At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. + +## Base version - apache +This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud + ports: + - 8080:80 + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +## Base version - FPM +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). + +As this setup does **not include encryption**, it should be run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud:fpm + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + + web: + image: nginx + ports: + - 8080:80 + links: + - app + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + volumes_from: + - app + restart: always +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +# Docker Secrets +As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: +```yaml +version: '3.2' + +services: + db: + image: postgres + restart: always + volumes: + - db:/var/lib/postgresql/data + environment: + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + secrets: + - postgres_db + - postgres_password + - postgres_user + + app: + image: nextcloud + restart: always + ports: + - 8080:80 + volumes: + - nextcloud:/var/www/html + environment: + - POSTGRES_HOST=db + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password + - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user + depends_on: + - db + secrets: + - nextcloud_admin_password + - nextcloud_admin_user + - postgres_db + - postgres_password + - postgres_user + +volumes: + db: + nextcloud: + +secrets: + nextcloud_admin_password: + file: ./nextcloud_admin_password.txt # put admin password to this file + nextcloud_admin_user: + file: ./nextcloud_admin_user.txt # put admin username to this file + postgres_db: + file: ./postgres_db.txt # put postgresql db name to this file + postgres_password: + file: ./postgres_password.txt # put postgresql password to this file + postgres_user: + file: ./postgres_user.txt # put postgresql username to this file +``` + +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`. + +# Make your Nextcloud available from the internet +Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory. + +## HTTPS - SSL encryption +There are many different possibilities to introduce encryption depending on your setup. + +We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you. + +In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup. + +# First use +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. + +# Update to a newer version +Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one. + +**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.** + +Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected. + +```console +$ docker pull nextcloud +$ docker stop +$ docker rm +$ docker run -d nextcloud +``` +Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. + +When using docker-compose your compose file takes care of your configuration, so you just have to run: + +```console +$ docker-compose pull +$ docker-compose up -d +``` + + +# Adding Features +A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it. +Start your derived image with the `FROM` statement and add whatever you like. + +```yaml +FROM nextcloud:apache + +RUN ... + +``` +The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. + +If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) + +```yaml + app: + build: . + links: + - db + volumes: + - data:/var/www/html/data + - config:/var/www/html/config + - apps:/var/www/html/apps + restart: always +``` + +If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work. + +```yaml +FROM nextcloud:apache + +... + +ENV NEXTCLOUD_UPDATE=1 + +CMD ["/usr/bin/supervisord"] +``` + + +**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run: + +```console +docker build -t your-name --pull . +docker run -d your-name +``` + +or for docker-compose: +```console +docker-compose build --pull +docker-compose up -d +``` + +The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. + +# Migrating an existing installation +You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: + +1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) + - To import from a MySQL dump use the following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` + - To import from a PostgreSQL dump use to following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` +3. Edit your config.php + 1. Set database connection + - In case of MySQL database + ```php + 'dbhost' => 'db:3306', + ``` + - In case of PostgreSQL database + ```php + 'dbhost' => 'db:5432', + ``` + 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these + ```diff + - "apps_paths" => array ( + - 0 => array ( + - "path" => OC::$SERVERROOT."/apps", + - "url" => "/apps", + - "writable" => true, + - ), + ``` + 3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable + ```php + 'apps_paths' => array ( + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), + ), + ``` + 4. Make sure your data directory is set to /var/www/html/data + ```php + 'datadirectory' => '/var/www/html/data', + ``` + + +4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container): +```console +docker cp ./data/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/data +docker cp ./theming/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/theming +docker cp ./config/config.php nextcloud_app_1:/var/www/html/config +docker-compose exec app chown -R www-data:www-data /var/www/html/config +``` +5. Copy only the custom apps you use (or simply redownload them from the web interface): +```console +docker cp ./custom_apps/ nextcloud_data:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps +``` + +# Questions / Issues +If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue. diff --git a/linux/advanced/nextcloud/pure/20/docker-compose.yml b/linux/advanced/nextcloud/pure/20/docker-compose.yml new file mode 100644 index 000000000..24f640b6a --- /dev/null +++ b/linux/advanced/nextcloud/pure/20/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:20" + build: + context: . diff --git a/linux/nextcloud/20/smb.conf b/linux/advanced/nextcloud/pure/20/smb.conf similarity index 100% rename from linux/nextcloud/20/smb.conf rename to linux/advanced/nextcloud/pure/20/smb.conf diff --git a/linux/advanced/nextcloud/pure/20/sources.list b/linux/advanced/nextcloud/pure/20/sources.list new file mode 100644 index 000000000..5a8c0081a --- /dev/null +++ b/linux/advanced/nextcloud/pure/20/sources.list @@ -0,0 +1,21 @@ +#main +deb http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free + +##multimedia +# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main diff --git a/linux/advanced/nextcloud/pure/21/Dockerfile b/linux/advanced/nextcloud/pure/21/Dockerfile new file mode 100644 index 000000000..487bdf09f --- /dev/null +++ b/linux/advanced/nextcloud/pure/21/Dockerfile @@ -0,0 +1,68 @@ +FROM nextcloud:21 +ENV DEBIAN_FRONTEND noninteractive + +################################################################## +# adding normal sources list +################################################################## +RUN rm /etc/apt/sources.list +COPY sources.list /etc/apt/sources.list + +################################################################## +# adding some utils +################################################################## +RUN apt update -y && \ + apt dist-upgrade -y && \ + apt install -y --allow-unauthenticated \ + apt-transport-https \ + curl \ + ca-certificates \ + ghostscript \ + nload \ + htop \ + mc \ + nano \ + sudo \ + imagemagick \ + imagemagick-common \ + sqlite3 \ + smbclient \ + libsmbclient \ + wget \ + net-tools \ + iputils-ping + + +################################################################## +# installing php repo + smbclient +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN apt update -y && \ + apt install -y --allow-unauthenticated \ + libsmbclient-dev \ + libmagickwand-dev \ + libmagickcore-dev \ + libc-client-dev \ + libkrb5-dev \ + libsqlite3-dev \ + libssl-dev + +RUN pecl install inotify && \ + docker-php-ext-enable inotify + +RUN pecl install smbclient && \ + docker-php-ext-enable smbclient + +RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ + docker-php-ext-install imap && \ + docker-php-ext-enable imap + +RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ + docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite + +################################################################## +# smb fix +################################################################## +RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf +ADD smb.conf /etc/samba/ +ADD smb.conf /usr/share/samba/ diff --git a/linux/advanced/nextcloud/pure/21/Makefile b/linux/advanced/nextcloud/pure/21/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/pure/21/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/nextcloud/pure/21/README.md b/linux/advanced/nextcloud/pure/21/README.md new file mode 100644 index 000000000..b6df71808 --- /dev/null +++ b/linux/advanced/nextcloud/pure/21/README.md @@ -0,0 +1,527 @@ +# What is Nextcloud? + +[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages) +[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh) +[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud) +[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud) +[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud) +[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud) +[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud) +[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud) +[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud) +[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud) +[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud) + +A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. + +![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg) + +# How to use this image +This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from. + +The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified. + +The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container. + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml) + +## Using the apache image +The apache image contains a webserver and exposes port 80. To start the container type: + +```console +$ docker run -d -p 8080:80 nextcloud +``` + +Now you can access Nextcloud at http://localhost:8080/ from your host system. + + +## Using the fpm image +To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. +If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). +In both cases you don't want to map the fpm port to your host. + +```console +$ docker run -d nextcloud:fpm +``` + +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). + +## Using an external database +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. + +## Persistent data +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. + +A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. + +Nextcloud: +- `/var/www/html/` folder where all nextcloud data lives +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +nextcloud +``` + +Database: +- `/var/lib/mysql` MySQL / MariaDB Data +- `/var/lib/postgresql/data` PostgreSQL Data +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb +``` + +If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. +The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. + +Overview of the folders that can be mounted as volumes: + +- `/var/www/html` Main folder, needed for updating +- `/var/www/html/custom_apps` installed / modified apps +- `/var/www/html/config` local configuration +- `/var/www/html/data` the actual data of your Nextcloud +- `/var/www/html/themes/` theming/branding + +If you want to use named volumes for all of these, it would look like this: +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +nextcloud +``` + +## Using the Nextcloud command-line interface +To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): +```console +$ docker exec --user www-data CONTAINER_ID php occ +``` +or for docker-compose: +```console +$ docker-compose exec --user www-data app php occ +``` + +## Auto configuration via environment variables +The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type! + +__SQLite__: +- `SQLITE_DATABASE` Name of the database using sqlite + +__MYSQL/MariaDB__: +- `MYSQL_DATABASE` Name of the database using mysql / mariadb. +- `MYSQL_USER` Username for the database using mysql / mariadb. +- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb. +- `MYSQL_HOST` Hostname of the database server using mysql / mariadb. + +__PostgreSQL__: +- `POSTGRES_DB` Name of the database using postgres. +- `POSTGRES_USER` Username for the database using postgres. +- `POSTGRES_PASSWORD` Password for the database user using postgres. +- `POSTGRES_HOST` Hostname of the database server using postgres. + +If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): + +- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user. +- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user. + +If you want, you can set the data directory, otherwise default value will be used. + +- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users. + +One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install. + +- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains + +The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with + +- `NEXTCLOUD_UPDATE` (default: _0_) + +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: + +- `REDIS_HOST` (not set by default) Name of Redis container +- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports. +- `REDIS_HOST_PASSWORD` (not set by default) Redis password + +The use of Redis is recommended to prevent file locking problems. See the examples for further instructions. + +To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add: + +- `SMTP_HOST` (not set by default): The hostname of the SMTP server. +- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS. +- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS. +- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. +- `SMTP_NAME` (empty by default): The username for the authentication. +- `SMTP_PASSWORD` (empty by default): The password for the authentication. +- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. + +To use an external S3 compatible object store as primary storage, set the following variables: +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_KEY`: AWS style access key +- `OBJECTSTORE_S3_SECRET`: AWS style secret access key +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. +- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. + +To use an external OpenStack Swift object store as primary storage, set the following variables: +- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint +- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container +- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username +- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password +- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain +- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name +- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain +- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name +- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region +- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information. + + +## Using the apache image behind a reverse proxy and auto configure server host and protocol + +The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`. + +- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip. + +- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4. + +If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters. + +- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port. +- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https. +- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy. +- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address. + +Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details. + +Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. + +# Running this image with docker-compose +The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. + +At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. + +## Base version - apache +This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud + ports: + - 8080:80 + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +## Base version - FPM +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). + +As this setup does **not include encryption**, it should be run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud:fpm + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + + web: + image: nginx + ports: + - 8080:80 + links: + - app + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + volumes_from: + - app + restart: always +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +# Docker Secrets +As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: +```yaml +version: '3.2' + +services: + db: + image: postgres + restart: always + volumes: + - db:/var/lib/postgresql/data + environment: + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + secrets: + - postgres_db + - postgres_password + - postgres_user + + app: + image: nextcloud + restart: always + ports: + - 8080:80 + volumes: + - nextcloud:/var/www/html + environment: + - POSTGRES_HOST=db + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password + - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user + depends_on: + - db + secrets: + - nextcloud_admin_password + - nextcloud_admin_user + - postgres_db + - postgres_password + - postgres_user + +volumes: + db: + nextcloud: + +secrets: + nextcloud_admin_password: + file: ./nextcloud_admin_password.txt # put admin password to this file + nextcloud_admin_user: + file: ./nextcloud_admin_user.txt # put admin username to this file + postgres_db: + file: ./postgres_db.txt # put postgresql db name to this file + postgres_password: + file: ./postgres_password.txt # put postgresql password to this file + postgres_user: + file: ./postgres_user.txt # put postgresql username to this file +``` + +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`. + +# Make your Nextcloud available from the internet +Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory. + +## HTTPS - SSL encryption +There are many different possibilities to introduce encryption depending on your setup. + +We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you. + +In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup. + +# First use +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. + +# Update to a newer version +Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one. + +**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.** + +Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected. + +```console +$ docker pull nextcloud +$ docker stop +$ docker rm +$ docker run -d nextcloud +``` +Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. + +When using docker-compose your compose file takes care of your configuration, so you just have to run: + +```console +$ docker-compose pull +$ docker-compose up -d +``` + + +# Adding Features +A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it. +Start your derived image with the `FROM` statement and add whatever you like. + +```yaml +FROM nextcloud:apache + +RUN ... + +``` +The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. + +If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) + +```yaml + app: + build: . + links: + - db + volumes: + - data:/var/www/html/data + - config:/var/www/html/config + - apps:/var/www/html/apps + restart: always +``` + +If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work. + +```yaml +FROM nextcloud:apache + +... + +ENV NEXTCLOUD_UPDATE=1 + +CMD ["/usr/bin/supervisord"] +``` + + +**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run: + +```console +docker build -t your-name --pull . +docker run -d your-name +``` + +or for docker-compose: +```console +docker-compose build --pull +docker-compose up -d +``` + +The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. + +# Migrating an existing installation +You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: + +1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) + - To import from a MySQL dump use the following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` + - To import from a PostgreSQL dump use to following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` +3. Edit your config.php + 1. Set database connection + - In case of MySQL database + ```php + 'dbhost' => 'db:3306', + ``` + - In case of PostgreSQL database + ```php + 'dbhost' => 'db:5432', + ``` + 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these + ```diff + - "apps_paths" => array ( + - 0 => array ( + - "path" => OC::$SERVERROOT."/apps", + - "url" => "/apps", + - "writable" => true, + - ), + ``` + 3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable + ```php + 'apps_paths' => array ( + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), + ), + ``` + 4. Make sure your data directory is set to /var/www/html/data + ```php + 'datadirectory' => '/var/www/html/data', + ``` + + +4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container): +```console +docker cp ./data/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/data +docker cp ./theming/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/theming +docker cp ./config/config.php nextcloud_app_1:/var/www/html/config +docker-compose exec app chown -R www-data:www-data /var/www/html/config +``` +5. Copy only the custom apps you use (or simply redownload them from the web interface): +```console +docker cp ./custom_apps/ nextcloud_data:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps +``` + +# Questions / Issues +If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue. diff --git a/linux/advanced/nextcloud/pure/21/docker-compose.yml b/linux/advanced/nextcloud/pure/21/docker-compose.yml new file mode 100644 index 000000000..f6bd84428 --- /dev/null +++ b/linux/advanced/nextcloud/pure/21/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:21" + build: + context: . diff --git a/linux/nextcloud/21/smb.conf b/linux/advanced/nextcloud/pure/21/smb.conf similarity index 100% rename from linux/nextcloud/21/smb.conf rename to linux/advanced/nextcloud/pure/21/smb.conf diff --git a/linux/advanced/nextcloud/pure/21/sources.list b/linux/advanced/nextcloud/pure/21/sources.list new file mode 100644 index 000000000..5a8c0081a --- /dev/null +++ b/linux/advanced/nextcloud/pure/21/sources.list @@ -0,0 +1,21 @@ +#main +deb http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free + +##multimedia +# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main diff --git a/linux/advanced/nextcloud/pure/22/Dockerfile b/linux/advanced/nextcloud/pure/22/Dockerfile new file mode 100644 index 000000000..8c659bbe9 --- /dev/null +++ b/linux/advanced/nextcloud/pure/22/Dockerfile @@ -0,0 +1,68 @@ +FROM nextcloud:22 +ENV DEBIAN_FRONTEND noninteractive + +################################################################## +# adding normal sources list +################################################################## +RUN rm /etc/apt/sources.list +COPY sources.list /etc/apt/sources.list + +################################################################## +# adding some utils +################################################################## +RUN apt update -y && \ + apt dist-upgrade -y && \ + apt install -y --allow-unauthenticated \ + apt-transport-https \ + curl \ + ca-certificates \ + ghostscript \ + nload \ + htop \ + mc \ + nano \ + sudo \ + imagemagick \ + imagemagick-common \ + sqlite3 \ + smbclient \ + libsmbclient \ + wget \ + net-tools \ + iputils-ping + + +################################################################## +# installing php repo + smbclient +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN apt update -y && \ + apt install -y --allow-unauthenticated \ + libsmbclient-dev \ + libmagickwand-dev \ + libmagickcore-dev \ + libc-client-dev \ + libkrb5-dev \ + libsqlite3-dev \ + libssl-dev + +RUN pecl install inotify && \ + docker-php-ext-enable inotify + +RUN pecl install smbclient && \ + docker-php-ext-enable smbclient + +RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ + docker-php-ext-install imap && \ + docker-php-ext-enable imap + +RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ + docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite + +################################################################## +# smb fix +################################################################## +RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf +ADD smb.conf /etc/samba/ +ADD smb.conf /usr/share/samba/ diff --git a/linux/advanced/nextcloud/pure/22/Makefile b/linux/advanced/nextcloud/pure/22/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/pure/22/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/nextcloud/pure/22/README.md b/linux/advanced/nextcloud/pure/22/README.md new file mode 100644 index 000000000..b6df71808 --- /dev/null +++ b/linux/advanced/nextcloud/pure/22/README.md @@ -0,0 +1,527 @@ +# What is Nextcloud? + +[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages) +[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh) +[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud) +[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud) +[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud) +[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud) +[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud) +[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud) +[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud) +[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud) +[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud) + +A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. + +![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg) + +# How to use this image +This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from. + +The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified. + +The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container. + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml) + +## Using the apache image +The apache image contains a webserver and exposes port 80. To start the container type: + +```console +$ docker run -d -p 8080:80 nextcloud +``` + +Now you can access Nextcloud at http://localhost:8080/ from your host system. + + +## Using the fpm image +To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. +If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). +In both cases you don't want to map the fpm port to your host. + +```console +$ docker run -d nextcloud:fpm +``` + +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). + +## Using an external database +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. + +## Persistent data +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. + +A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. + +Nextcloud: +- `/var/www/html/` folder where all nextcloud data lives +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +nextcloud +``` + +Database: +- `/var/lib/mysql` MySQL / MariaDB Data +- `/var/lib/postgresql/data` PostgreSQL Data +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb +``` + +If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. +The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. + +Overview of the folders that can be mounted as volumes: + +- `/var/www/html` Main folder, needed for updating +- `/var/www/html/custom_apps` installed / modified apps +- `/var/www/html/config` local configuration +- `/var/www/html/data` the actual data of your Nextcloud +- `/var/www/html/themes/` theming/branding + +If you want to use named volumes for all of these, it would look like this: +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +nextcloud +``` + +## Using the Nextcloud command-line interface +To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): +```console +$ docker exec --user www-data CONTAINER_ID php occ +``` +or for docker-compose: +```console +$ docker-compose exec --user www-data app php occ +``` + +## Auto configuration via environment variables +The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type! + +__SQLite__: +- `SQLITE_DATABASE` Name of the database using sqlite + +__MYSQL/MariaDB__: +- `MYSQL_DATABASE` Name of the database using mysql / mariadb. +- `MYSQL_USER` Username for the database using mysql / mariadb. +- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb. +- `MYSQL_HOST` Hostname of the database server using mysql / mariadb. + +__PostgreSQL__: +- `POSTGRES_DB` Name of the database using postgres. +- `POSTGRES_USER` Username for the database using postgres. +- `POSTGRES_PASSWORD` Password for the database user using postgres. +- `POSTGRES_HOST` Hostname of the database server using postgres. + +If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): + +- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user. +- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user. + +If you want, you can set the data directory, otherwise default value will be used. + +- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users. + +One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install. + +- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains + +The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with + +- `NEXTCLOUD_UPDATE` (default: _0_) + +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: + +- `REDIS_HOST` (not set by default) Name of Redis container +- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports. +- `REDIS_HOST_PASSWORD` (not set by default) Redis password + +The use of Redis is recommended to prevent file locking problems. See the examples for further instructions. + +To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add: + +- `SMTP_HOST` (not set by default): The hostname of the SMTP server. +- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS. +- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS. +- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. +- `SMTP_NAME` (empty by default): The username for the authentication. +- `SMTP_PASSWORD` (empty by default): The password for the authentication. +- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. + +To use an external S3 compatible object store as primary storage, set the following variables: +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_KEY`: AWS style access key +- `OBJECTSTORE_S3_SECRET`: AWS style secret access key +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. +- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. + +To use an external OpenStack Swift object store as primary storage, set the following variables: +- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint +- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container +- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username +- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password +- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain +- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name +- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain +- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name +- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region +- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information. + + +## Using the apache image behind a reverse proxy and auto configure server host and protocol + +The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`. + +- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip. + +- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4. + +If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters. + +- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port. +- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https. +- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy. +- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address. + +Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details. + +Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. + +# Running this image with docker-compose +The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. + +At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. + +## Base version - apache +This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud + ports: + - 8080:80 + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +## Base version - FPM +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). + +As this setup does **not include encryption**, it should be run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud:fpm + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + + web: + image: nginx + ports: + - 8080:80 + links: + - app + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + volumes_from: + - app + restart: always +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +# Docker Secrets +As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: +```yaml +version: '3.2' + +services: + db: + image: postgres + restart: always + volumes: + - db:/var/lib/postgresql/data + environment: + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + secrets: + - postgres_db + - postgres_password + - postgres_user + + app: + image: nextcloud + restart: always + ports: + - 8080:80 + volumes: + - nextcloud:/var/www/html + environment: + - POSTGRES_HOST=db + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password + - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user + depends_on: + - db + secrets: + - nextcloud_admin_password + - nextcloud_admin_user + - postgres_db + - postgres_password + - postgres_user + +volumes: + db: + nextcloud: + +secrets: + nextcloud_admin_password: + file: ./nextcloud_admin_password.txt # put admin password to this file + nextcloud_admin_user: + file: ./nextcloud_admin_user.txt # put admin username to this file + postgres_db: + file: ./postgres_db.txt # put postgresql db name to this file + postgres_password: + file: ./postgres_password.txt # put postgresql password to this file + postgres_user: + file: ./postgres_user.txt # put postgresql username to this file +``` + +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`. + +# Make your Nextcloud available from the internet +Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory. + +## HTTPS - SSL encryption +There are many different possibilities to introduce encryption depending on your setup. + +We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you. + +In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup. + +# First use +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. + +# Update to a newer version +Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one. + +**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.** + +Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected. + +```console +$ docker pull nextcloud +$ docker stop +$ docker rm +$ docker run -d nextcloud +``` +Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. + +When using docker-compose your compose file takes care of your configuration, so you just have to run: + +```console +$ docker-compose pull +$ docker-compose up -d +``` + + +# Adding Features +A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it. +Start your derived image with the `FROM` statement and add whatever you like. + +```yaml +FROM nextcloud:apache + +RUN ... + +``` +The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. + +If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) + +```yaml + app: + build: . + links: + - db + volumes: + - data:/var/www/html/data + - config:/var/www/html/config + - apps:/var/www/html/apps + restart: always +``` + +If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work. + +```yaml +FROM nextcloud:apache + +... + +ENV NEXTCLOUD_UPDATE=1 + +CMD ["/usr/bin/supervisord"] +``` + + +**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run: + +```console +docker build -t your-name --pull . +docker run -d your-name +``` + +or for docker-compose: +```console +docker-compose build --pull +docker-compose up -d +``` + +The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. + +# Migrating an existing installation +You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: + +1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) + - To import from a MySQL dump use the following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` + - To import from a PostgreSQL dump use to following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` +3. Edit your config.php + 1. Set database connection + - In case of MySQL database + ```php + 'dbhost' => 'db:3306', + ``` + - In case of PostgreSQL database + ```php + 'dbhost' => 'db:5432', + ``` + 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these + ```diff + - "apps_paths" => array ( + - 0 => array ( + - "path" => OC::$SERVERROOT."/apps", + - "url" => "/apps", + - "writable" => true, + - ), + ``` + 3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable + ```php + 'apps_paths' => array ( + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), + ), + ``` + 4. Make sure your data directory is set to /var/www/html/data + ```php + 'datadirectory' => '/var/www/html/data', + ``` + + +4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container): +```console +docker cp ./data/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/data +docker cp ./theming/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/theming +docker cp ./config/config.php nextcloud_app_1:/var/www/html/config +docker-compose exec app chown -R www-data:www-data /var/www/html/config +``` +5. Copy only the custom apps you use (or simply redownload them from the web interface): +```console +docker cp ./custom_apps/ nextcloud_data:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps +``` + +# Questions / Issues +If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue. diff --git a/linux/advanced/nextcloud/pure/22/docker-compose.yml b/linux/advanced/nextcloud/pure/22/docker-compose.yml new file mode 100644 index 000000000..1eb96cb2a --- /dev/null +++ b/linux/advanced/nextcloud/pure/22/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:22" + build: + context: . diff --git a/linux/nextcloud/latest/smb.conf b/linux/advanced/nextcloud/pure/22/smb.conf similarity index 100% rename from linux/nextcloud/latest/smb.conf rename to linux/advanced/nextcloud/pure/22/smb.conf diff --git a/linux/advanced/nextcloud/pure/22/sources.list b/linux/advanced/nextcloud/pure/22/sources.list new file mode 100644 index 000000000..5a8c0081a --- /dev/null +++ b/linux/advanced/nextcloud/pure/22/sources.list @@ -0,0 +1,21 @@ +#main +deb http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free + +##multimedia +# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main diff --git a/linux/advanced/nextcloud/pure/latest/Dockerfile b/linux/advanced/nextcloud/pure/latest/Dockerfile new file mode 100644 index 000000000..2a74db95c --- /dev/null +++ b/linux/advanced/nextcloud/pure/latest/Dockerfile @@ -0,0 +1,67 @@ +FROM nextcloud:latest +ENV DEBIAN_FRONTEND noninteractive + +################################################################## +# adding normal sources list +################################################################## +RUN rm /etc/apt/sources.list +COPY sources.list /etc/apt/sources.list + +################################################################## +# adding some utils +################################################################## +RUN apt update -y && \ + apt dist-upgrade -y && \ + apt install -y --allow-unauthenticated \ + apt-transport-https \ + curl \ + ca-certificates \ + ghostscript \ + nload \ + htop \ + mc \ + nano \ + sudo \ + imagemagick \ + imagemagick-common \ + sqlite3 \ + smbclient \ + libsmbclient \ + wget \ + net-tools \ + iputils-ping + +################################################################## +# installing php repo + smbclient +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN apt update -y && \ + apt install -y --allow-unauthenticated \ + libsmbclient-dev \ + libmagickwand-dev \ + libmagickcore-dev \ + libc-client-dev \ + libkrb5-dev \ + libsqlite3-dev \ + libssl-dev + +RUN pecl install inotify && \ + docker-php-ext-enable inotify + +RUN pecl install smbclient && \ + docker-php-ext-enable smbclient + +RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ + docker-php-ext-install imap && \ + docker-php-ext-enable imap + +RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ + docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite + +################################################################## +# smb fix +################################################################## +RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf +ADD smb.conf /etc/samba/ +ADD smb.conf /usr/share/samba/ diff --git a/linux/advanced/nextcloud/pure/latest/Makefile b/linux/advanced/nextcloud/pure/latest/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/nextcloud/pure/latest/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/nextcloud/pure/latest/README.md b/linux/advanced/nextcloud/pure/latest/README.md new file mode 100644 index 000000000..b6df71808 --- /dev/null +++ b/linux/advanced/nextcloud/pure/latest/README.md @@ -0,0 +1,527 @@ +# What is Nextcloud? + +[![GitHub CI build status badge](https://github.com/nextcloud/docker/workflows/Images/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3AImages) +[![update.sh build status badge](https://github.com/nextcloud/docker/workflows/update.sh/badge.svg)](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh) +[![amd64 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud.svg?label=amd64)](https://doi-janky.infosiftr.net/job/multiarch/job/amd64/job/nextcloud) +[![arm32v5 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud.svg?label=arm32v5)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v5/job/nextcloud) +[![arm32v6 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud.svg?label=arm32v6)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v6/job/nextcloud) +[![arm32v7 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud.svg?label=arm32v7)](https://doi-janky.infosiftr.net/job/multiarch/job/arm32v7/job/nextcloud) +[![arm64v8 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud.svg?label=arm64v8)](https://doi-janky.infosiftr.net/job/multiarch/job/arm64v8/job/nextcloud) +[![i386 build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud.svg?label=i386)](https://doi-janky.infosiftr.net/job/multiarch/job/i386/job/nextcloud) +[![mips64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud.svg?label=mips64le)](https://doi-janky.infosiftr.net/job/multiarch/job/mips64le/job/nextcloud) +[![ppc64le build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud.svg?label=ppc64le)](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud) +[![s390x build status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud.svg?label=s390x)](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud) + +A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. + +![logo](https://cdn.rawgit.com/nextcloud/docker/80dd587d847b184ba95d7187a2a7a56ae4cbbb7b/logo.svg) + +# How to use this image +This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from. + +The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified. + +The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container. + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml) + +## Using the apache image +The apache image contains a webserver and exposes port 80. To start the container type: + +```console +$ docker run -d -p 8080:80 nextcloud +``` + +Now you can access Nextcloud at http://localhost:8080/ from your host system. + + +## Using the fpm image +To use the fpm image, you need an additional web server that can proxy http-request to the fpm-port of the container. For fpm connection this container exposes port 9000. In most cases, you might want use another container or your host as proxy. +If you use your host you can address your Nextcloud container directly on port 9000. If you use another container, make sure that you add them to the same docker network (via `docker run --network ...` or a `docker-compose` file). +In both cases you don't want to map the fpm port to your host. + +```console +$ docker run -d nextcloud:fpm +``` + +As the fastCGI-Process is not capable of serving static files (style sheets, images, ...), the webserver needs access to these files. This can be achieved with the `volumes-from` option. You can find more information in the [docker-compose section](#running-this-image-with-docker-compose). + +## Using an external database +By default, this container uses SQLite for data storage but the Nextcloud setup wizard (appears on first run) allows connecting to an existing MySQL/MariaDB or PostgreSQL database. You can also link a database container, e. g. `--link my-mysql:mysql`, and then use `mysql` as the database host on setup. More info is in the docker-compose section. + +## Persistent data +The Nextcloud installation and all data beyond what lives in the database (file uploads, etc) are stored in the [unnamed docker volume](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume) volume `/var/www/html`. The docker daemon will store that data within the docker directory `/var/lib/docker/volumes/...`. That means your data is saved even if the container crashes, is stopped or deleted. + +A named Docker volume or a mounted host directory should be used for upgrades and backups. To achieve this, you need one volume for your database container and one for Nextcloud. + +Nextcloud: +- `/var/www/html/` folder where all nextcloud data lives +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +nextcloud +``` + +Database: +- `/var/lib/mysql` MySQL / MariaDB Data +- `/var/lib/postgresql/data` PostgreSQL Data +```console +$ docker run -d \ +-v db:/var/lib/mysql \ +mariadb +``` + +If you want to get fine grained access to your individual files, you can mount additional volumes for data, config, your theme and custom apps. +The `data`, `config` files are stored in respective subfolders inside `/var/www/html/`. The apps are split into core `apps` (which are shipped with Nextcloud and you don't need to take care of) and a `custom_apps` folder. If you use a custom theme it would go into the `themes` subfolder. + +Overview of the folders that can be mounted as volumes: + +- `/var/www/html` Main folder, needed for updating +- `/var/www/html/custom_apps` installed / modified apps +- `/var/www/html/config` local configuration +- `/var/www/html/data` the actual data of your Nextcloud +- `/var/www/html/themes/` theming/branding + +If you want to use named volumes for all of these, it would look like this: +```console +$ docker run -d \ +-v nextcloud:/var/www/html \ +-v apps:/var/www/html/custom_apps \ +-v config:/var/www/html/config \ +-v data:/var/www/html/data \ +-v theme:/var/www/html/themes/ \ +nextcloud +``` + +## Using the Nextcloud command-line interface +To use the [Nextcloud command-line interface](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) (aka. `occ` command): +```console +$ docker exec --user www-data CONTAINER_ID php occ +``` +or for docker-compose: +```console +$ docker-compose exec --user www-data app php occ +``` + +## Auto configuration via environment variables +The nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. ONLY use one database type! + +__SQLite__: +- `SQLITE_DATABASE` Name of the database using sqlite + +__MYSQL/MariaDB__: +- `MYSQL_DATABASE` Name of the database using mysql / mariadb. +- `MYSQL_USER` Username for the database using mysql / mariadb. +- `MYSQL_PASSWORD` Password for the database user using mysql / mariadb. +- `MYSQL_HOST` Hostname of the database server using mysql / mariadb. + +__PostgreSQL__: +- `POSTGRES_DB` Name of the database using postgres. +- `POSTGRES_USER` Username for the database using postgres. +- `POSTGRES_PASSWORD` Password for the database user using postgres. +- `POSTGRES_HOST` Hostname of the database server using postgres. + +If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both): + +- `NEXTCLOUD_ADMIN_USER` Name of the Nextcloud admin user. +- `NEXTCLOUD_ADMIN_PASSWORD` Password for the Nextcloud admin user. + +If you want, you can set the data directory, otherwise default value will be used. + +- `NEXTCLOUD_DATA_DIR` (default: _/var/www/html/data_) Configures the data directory where nextcloud stores all files from the users. + +One or more trusted domains can be set through environment variable, too. They will be added to the configuration after install. + +- `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains + +The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with + +- `NEXTCLOUD_UPDATE` (default: _0_) + +If you want to use Redis you have to create a separate [Redis](https://hub.docker.com/_/redis/) container in your setup / in your docker-compose file. To inform Nextcloud about the Redis container, pass in the following parameters: + +- `REDIS_HOST` (not set by default) Name of Redis container +- `REDIS_HOST_PORT` (default: _6379_) Optional port for Redis, only use for external Redis servers that run on non-standard ports. +- `REDIS_HOST_PASSWORD` (not set by default) Redis password + +The use of Redis is recommended to prevent file locking problems. See the examples for further instructions. + +To use an external SMTP server, you have to provide the connection details. To configure Nextcloud to use SMTP add: + +- `SMTP_HOST` (not set by default): The hostname of the SMTP server. +- `SMTP_SECURE` (empty by default): Set to `ssl` to use SSL, or `tls` to use STARTTLS. +- `SMTP_PORT` (default: `465` for SSL and `25` for non-secure connections): Optional port for the SMTP connection. Use `587` for an alternative port for STARTTLS. +- `SMTP_AUTHTYPE` (default: `LOGIN`): The method used for authentication. Use `PLAIN` if no authentication is required. +- `SMTP_NAME` (empty by default): The username for the authentication. +- `SMTP_PASSWORD` (empty by default): The password for the authentication. +- `MAIL_FROM_ADDRESS` (not set by default): Use this address for the 'from' field in the emails sent by Nextcloud. +- `MAIL_DOMAIN` (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed. + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html) for other values to configure SMTP. + +To use an external S3 compatible object store as primary storage, set the following variables: +- `OBJECTSTORE_S3_HOST`: The hostname of the object storage server +- `OBJECTSTORE_S3_BUCKET`: The name of the bucket that Nextcloud should store the data in +- `OBJECTSTORE_S3_KEY`: AWS style access key +- `OBJECTSTORE_S3_SECRET`: AWS style secret access key +- `OBJECTSTORE_S3_PORT`: The port that the object storage server is being served over +- `OBJECTSTORE_S3_SSL` (default: `true`): Whether or not SSL/TLS should be used to communicate with object storage server +- `OBJECTSTORE_S3_REGION`: The region that the S3 bucket resides in. +- `OBJECTSTORE_S3_USEPATH_STYLE` (default: `false`): Not required for AWS S3 + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. + +To use an external OpenStack Swift object store as primary storage, set the following variables: +- `OBJECTSTORE_SWIFT_URL`: The Swift identity (Keystone) endpoint +- `OBJECTSTORE_SWIFT_AUTOCREATE` (default: `false`): Whether or not Nextcloud should automatically create the Swift container +- `OBJECTSTORE_SWIFT_USER_NAME`: Swift username +- `OBJECTSTORE_SWIFT_USER_PASSWORD`: Swift user password +- `OBJECTSTORE_SWIFT_USER_DOMAIN` (default: `Default`): Swift user domain +- `OBJECTSTORE_SWIFT_PROJECT_NAME`: OpenStack project name +- `OBJECTSTORE_SWIFT_PROJECT_DOMAIN` (default: `Default`): OpenStack project domain +- `OBJECTSTORE_SWIFT_SERVICE_NAME` (default: `swift`): Swift service name +- `OBJECTSTORE_SWIFT_SERVICE_REGION`: Swift endpoint region +- `OBJECTSTORE_SWIFT_CONTAINER_NAME`: Swift container (bucket) that Nextcloud should store the data in + +Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#openstack-swift) for more information. + + +## Using the apache image behind a reverse proxy and auto configure server host and protocol + +The apache image will replace the remote addr (ip address visible to Nextcloud) with the ip address from `X-Real-IP` if the request is coming from a proxy in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16 by default. If you want Nextcloud to pick up the server host (`HTTP_X_FORWARDED_HOST`), protocol (`HTTP_X_FORWARDED_PROTO`) and client ip (`HTTP_X_FORWARDED_FOR`) from a trusted proxy disable rewrite ip and the reverse proxies ip address to `TRUSTED_PROXIES`. + +- `APACHE_DISABLE_REWRITE_IP` (not set by default): Set to 1 to disable rewrite ip. + +- `TRUSTED_PROXIES` (empty by default): A space-separated list of trusted proxies. CIDR notation is supported for IPv4. + +If the `TRUSTED_PROXIES` approach does not work for you, try using fixed values for overwrite parameters. + +- `OVERWRITEHOST` (empty by default): Set the hostname of the proxy. Can also specify a port. +- `OVERWRITEPROTOCOL` (empty by default): Set the protocol of the proxy, http or https. +- `OVERWRITEWEBROOT` (empty by default): Set the absolute path of the proxy. +- `OVERWRITECONDADDR` (empty by default): Regex to overwrite the values dependent on the remote address. + +Check the [Nexcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html) for more details. + +Keep in mind that once set, removing these environment variables won't remove these values from the configuration file, due to how Nextcloud merges configuration files together. + +# Running this image with docker-compose +The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples of what you have to look for. + +At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information. + +## Base version - apache +This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud + ports: + - 8080:80 + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +## Base version - FPM +When using the FPM image, you need another container that acts as web server on port 80 and proxies the requests to the Nextcloud container. In this example a simple nginx container is combined with the Nextcloud-fpm image and a MariaDB database container. The data is stored in docker volumes. The nginx container also needs access to static files from your Nextcloud installation. It gets access to all the volumes mounted to Nextcloud via the `volumes_from` option.The configuration for nginx is stored in the configuration file `nginx.conf`, that is mounted into the container. An example can be found in the examples section [here](https://github.com/nextcloud/docker/tree/master/.examples). + +As this setup does **not include encryption**, it should be run behind a proxy. + +Make sure to pass in values for `MYSQL_ROOT_PASSWORD` and `MYSQL_PASSWORD` variables before you run this setup. + +```yaml +version: '2' + +volumes: + nextcloud: + db: + +services: + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: always + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD= + - MYSQL_PASSWORD= + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud + + app: + image: nextcloud:fpm + links: + - db + volumes: + - nextcloud:/var/www/html + restart: always + + web: + image: nginx + ports: + - 8080:80 + links: + - app + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf:ro + volumes_from: + - app + restart: always +``` + +Then run `docker-compose up -d`, now you can access Nextcloud at http://localhost:8080/ from your host system. + +# Docker Secrets +As an alternative to passing sensitive information via environment variables, _FILE may be appended to the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/ files. For example: +```yaml +version: '3.2' + +services: + db: + image: postgres + restart: always + volumes: + - db:/var/lib/postgresql/data + environment: + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + secrets: + - postgres_db + - postgres_password + - postgres_user + + app: + image: nextcloud + restart: always + ports: + - 8080:80 + volumes: + - nextcloud:/var/www/html + environment: + - POSTGRES_HOST=db + - POSTGRES_DB_FILE=/run/secrets/postgres_db + - POSTGRES_USER_FILE=/run/secrets/postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password + - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password + - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user + depends_on: + - db + secrets: + - nextcloud_admin_password + - nextcloud_admin_user + - postgres_db + - postgres_password + - postgres_user + +volumes: + db: + nextcloud: + +secrets: + nextcloud_admin_password: + file: ./nextcloud_admin_password.txt # put admin password to this file + nextcloud_admin_user: + file: ./nextcloud_admin_user.txt # put admin username to this file + postgres_db: + file: ./postgres_db.txt # put postgresql db name to this file + postgres_password: + file: ./postgres_password.txt # put postgresql password to this file + postgres_user: + file: ./postgres_user.txt # put postgresql username to this file +``` + +Currently, this is only supported for `NEXTCLOUD_ADMIN_PASSWORD`, `NEXTCLOUD_ADMIN_USER`, `MYSQL_DB`, `MYSQL_PASSWORD`, `MYSQL_USER`, `POSTGRES_DB`, `POSTGRES_PASSWORD`, `POSTGRES_USER`. + +# Make your Nextcloud available from the internet +Until here, your Nextcloud is just available from you docker host. If you want your Nextcloud available from the internet adding SSL encryption is mandatory. + +## HTTPS - SSL encryption +There are many different possibilities to introduce encryption depending on your setup. + +We recommend using a reverse proxy in front of our Nextcloud installation. Your Nextcloud will only be reachable through the proxy, which encrypts all traffic to the clients. You can mount your manually generated certificates to the proxy or use a fully automated solution which generates and renews the certificates for you. + +In our [examples](https://github.com/nextcloud/docker/tree/master/.examples) section we have an example for a fully automated setup using a reverse proxy, a container for [Let's Encrypt](https://letsencrypt.org/) certificate handling, database and Nextcloud. It uses the popular [nginx-proxy](https://github.com/jwilder/nginx-proxy) and [docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) containers. Please check the according documentations before using this setup. + +# First use +When you first access your Nextcloud, the setup wizard will appear and ask you to choose an administrator account username, password and the database connection. For the database use `db` as host and `nextcloud` as table and user name. Also enter the password you chose in your `docker-compose.yml` file. + +# Update to a newer version +Updating the Nextcloud container is done by pulling the new image, throwing away the old container and starting the new one. + +**It is only possible to upgrade one major version at a time. For example, if you want to upgrade from version 14 to 16, you will have to upgrade from version 14 to 15, then from 15 to 16.** + +Since all data is stored in volumes, nothing gets lost. The startup script will check for the version in your volume and the installed docker version. If it finds a mismatch, it automatically starts the upgrade process. Don't forget to add all the volumes to your new container, so it works as expected. + +```console +$ docker pull nextcloud +$ docker stop +$ docker rm +$ docker run -d nextcloud +``` +Beware that you have to run the same command with the options that you used to initially start your Nextcloud. That includes volumes, port mapping. + +When using docker-compose your compose file takes care of your configuration, so you just have to run: + +```console +$ docker-compose pull +$ docker-compose up -d +``` + + +# Adding Features +A lot of people want to use additional functionality inside their Nextcloud installation. If the image does not include the packages you need, you can easily build your own image on top of it. +Start your derived image with the `FROM` statement and add whatever you like. + +```yaml +FROM nextcloud:apache + +RUN ... + +``` +The [examples folder](https://github.com/nextcloud/docker/blob/master/.examples) gives a few examples on how to add certain functionalities, like including the cron job, smb-support or imap-authentication. + +If you use your own Dockerfile, you need to configure your docker-compose file accordingly. Switch out the `image` option with `build`. You have to specify the path to your Dockerfile. (in the example it's in the same directory next to the docker-compose file) + +```yaml + app: + build: . + links: + - db + volumes: + - data:/var/www/html/data + - config:/var/www/html/config + - apps:/var/www/html/apps + restart: always +``` + +If you intend to use another command to run the image, make sure that you set `NEXTCLOUD_UPDATE=1` in your Dockerfile. Otherwise the installation and update will not work. + +```yaml +FROM nextcloud:apache + +... + +ENV NEXTCLOUD_UPDATE=1 + +CMD ["/usr/bin/supervisord"] +``` + + +**Updating** your own derived image is also very simple. When a new version of the Nextcloud image is available run: + +```console +docker build -t your-name --pull . +docker run -d your-name +``` + +or for docker-compose: +```console +docker-compose build --pull +docker-compose up -d +``` + +The `--pull` option tells docker to look for new versions of the base image. Then the build instructions inside your `Dockerfile` are run on top of the new image. + +# Migrating an existing installation +You're already using Nextcloud and want to switch to docker? Great! Here are some things to look out for: + +1. Define your whole Nextcloud infrastructure in a `docker-compose` file and run it with `docker-compose up -d` to get the base installation, volumes and database. Work from there. +2. Restore your database from a mysqldump (nextcloud\_db\_1 is the name of your db container) + - To import from a MySQL dump use the following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "mysql -u USER -pPASSWORD nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` + - To import from a PostgreSQL dump use to following commands + ```console + docker cp ./database.dmp nextcloud_db_1:/dmp + docker-compose exec db sh -c "psql -U USER --set ON_ERROR_STOP=on nextcloud < /dmp" + docker-compose exec db rm /dmp + ``` +3. Edit your config.php + 1. Set database connection + - In case of MySQL database + ```php + 'dbhost' => 'db:3306', + ``` + - In case of PostgreSQL database + ```php + 'dbhost' => 'db:5432', + ``` + 2. Make sure you have no configuration for the `apps_paths`. Delete lines like these + ```diff + - "apps_paths" => array ( + - 0 => array ( + - "path" => OC::$SERVERROOT."/apps", + - "url" => "/apps", + - "writable" => true, + - ), + ``` + 3. Make sure to have the `apps` directory non writable and the `custom_apps` directory writable + ```php + 'apps_paths' => array ( + 0 => array ( + 'path' => '/var/www/html/apps', + 'url' => '/apps', + 'writable' => false, + ), + 1 => array ( + 'path' => '/var/www/html/custom_apps', + 'url' => '/custom_apps', + 'writable' => true, + ), + ), + ``` + 4. Make sure your data directory is set to /var/www/html/data + ```php + 'datadirectory' => '/var/www/html/data', + ``` + + +4. Copy your data (nextcloud_app_1 is the name of your Nextcloud container): +```console +docker cp ./data/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/data +docker cp ./theming/ nextcloud_app_1:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/theming +docker cp ./config/config.php nextcloud_app_1:/var/www/html/config +docker-compose exec app chown -R www-data:www-data /var/www/html/config +``` +5. Copy only the custom apps you use (or simply redownload them from the web interface): +```console +docker cp ./custom_apps/ nextcloud_data:/var/www/html/ +docker-compose exec app chown -R www-data:www-data /var/www/html/custom_apps +``` + +# Questions / Issues +If you got any questions or problems using the image, please visit our [Github Repository](https://github.com/nextcloud/docker) and write an issue. diff --git a/linux/advanced/nextcloud/pure/latest/docker-compose.yml b/linux/advanced/nextcloud/pure/latest/docker-compose.yml new file mode 100644 index 000000000..ec811fc63 --- /dev/null +++ b/linux/advanced/nextcloud/pure/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:latest" + build: + context: . diff --git a/linux/advanced/nextcloud/pure/latest/smb.conf b/linux/advanced/nextcloud/pure/latest/smb.conf new file mode 100644 index 000000000..9346a22f4 --- /dev/null +++ b/linux/advanced/nextcloud/pure/latest/smb.conf @@ -0,0 +1,239 @@ +# +# Sample configuration file for the Samba suite for Debian GNU/Linux. +# +# +# This is the main Samba configuration file. You should read the +# smb.conf(5) manual page in order to understand the options listed +# here. Samba has a huge number of configurable options most of which +# are not shown in this example +# +# Some options that are often worth tuning have been included as +# commented-out examples in this file. +# - When such options are commented with ";", the proposed setting +# differs from the default Samba behaviour +# - When commented with "#", the proposed setting is the default +# behaviour of Samba but the option is considered important +# enough to be mentioned here +# +# NOTE: Whenever you modify this file you should run the command +# "testparm" to check that you have not made any basic syntactic +# errors. + +#======================= Global Settings ======================= + +[global] +client min protocol = SMB2 +client max protocol = SMB3 + + +## Browsing/Identification ### + +# Change this to the workgroup/NT-domain name your Samba server will part of + workgroup = WORKGROUP + +#### Networking #### + +# The specific set of interfaces / networks to bind to +# This can be either the interface name or an IP address/netmask; +# interface names are normally preferred +; interfaces = 127.0.0.0/8 eth0 + +# Only bind to the named interfaces and/or networks; you must use the +# 'interfaces' option above to use this. +# It is recommended that you enable this feature if your Samba machine is +# not protected by a firewall or is a firewall itself. However, this +# option cannot handle dynamic or non-broadcast interfaces correctly. +; bind interfaces only = yes + + + +#### Debugging/Accounting #### + +# This tells Samba to use a separate log file for each machine +# that connects + log file = /var/log/samba/log.%m + +# Cap the size of the individual log files (in KiB). + max log size = 1000 + +# We want Samba to only log to /var/log/samba/log.{smbd,nmbd}. +# Append syslog@1 if you want important messages to be sent to syslog too. + logging = file + +# Do something sensible when Samba crashes: mail the admin a backtrace + panic action = /usr/share/samba/panic-action %d + + +####### Authentication ####### + +# Server role. Defines in which mode Samba will operate. Possible +# values are "standalone server", "member server", "classic primary +# domain controller", "classic backup domain controller", "active +# directory domain controller". +# +# Most people will want "standalone server" or "member server". +# Running as "active directory domain controller" will require first +# running "samba-tool domain provision" to wipe databases and create a +# new domain. + server role = standalone server + + obey pam restrictions = yes + +# This boolean parameter controls whether Samba attempts to sync the Unix +# password with the SMB password when the encrypted SMB password in the +# passdb is changed. + unix password sync = yes + +# For Unix password sync to work on a Debian GNU/Linux system, the following +# parameters must be set (thanks to Ian Kahan < for +# sending the correct chat script for the passwd program in Debian Sarge). + passwd program = /usr/bin/passwd %u + passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . + +# This boolean controls whether PAM will be used for password changes +# when requested by an SMB client instead of the program listed in +# 'passwd program'. The default is 'no'. + pam password change = yes + +# This option controls how unsuccessful authentication attempts are mapped +# to anonymous connections + map to guest = bad user + +########## Domains ########### + +# +# The following settings only takes effect if 'server role = primary +# classic domain controller', 'server role = backup domain controller' +# or 'domain logons' is set +# + +# It specifies the location of the user's +# profile directory from the client point of view) The following +# required a [profiles] share to be setup on the samba server (see +# below) +; logon path = \\%N\profiles\%U +# Another common choice is storing the profile in the user's home directory +# (this is Samba's default) +# logon path = \\%N\%U\profile + +# The following setting only takes effect if 'domain logons' is set +# It specifies the location of a user's home directory (from the client +# point of view) +; logon drive = H: +# logon home = \\%N\%U + +# The following setting only takes effect if 'domain logons' is set +# It specifies the script to run during logon. The script must be stored +# in the [netlogon] share +# NOTE: Must be store in 'DOS' file format convention +; logon script = logon.cmd + +# This allows Unix users to be created on the domain controller via the SAMR +# RPC pipe. The example command creates a user account with a disabled Unix +# password; please adapt to your needs +; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u + +# This allows machine accounts to be created on the domain controller via the +# SAMR RPC pipe. +# The following assumes a "machines" group exists on the system +; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u + +# This allows Unix groups to be created on the domain controller via the SAMR +# RPC pipe. +; add group script = /usr/sbin/addgroup --force-badname %g + +############ Misc ############ + +# Using the following line enables you to customise your configuration +# on a per machine basis. The %m gets replaced with the netbios name +# of the machine that is connecting +; include = /home/samba/etc/smb.conf.%m + +# Some defaults for winbind (make sure you're not using the ranges +# for something else.) +; idmap config * : backend = tdb +; idmap config * : range = 3000-7999 +; idmap config YOURDOMAINHERE : backend = tdb +; idmap config YOURDOMAINHERE : range = 100000-999999 +; template shell = /bin/bash + +# Setup usershare options to enable non-root users to share folders +# with the net usershare command. + +# Maximum number of usershare. 0 means that usershare is disabled. +# usershare max shares = 100 + +# Allow users who've been granted usershare privileges to create +# public shares, not just authenticated ones + usershare allow guests = yes + +#======================= Share Definitions ======================= + +[homes] + comment = Home Directories + browseable = no + +# By default, the home directories are exported read-only. Change the +# next parameter to 'no' if you want to be able to write to them. + read only = yes + +# File creation mask is set to 0700 for security reasons. If you want to +# create files with group=rw permissions, set next parameter to 0775. + create mask = 0700 + +# Directory creation mask is set to 0700 for security reasons. If you want to +# create dirs. with group=rw permissions, set next parameter to 0775. + directory mask = 0700 + +# By default, \\server\username shares can be connected to by anyone +# with access to the samba server. +# The following parameter makes sure that only "username" can connect +# to \\server\username +# This might need tweaking when using external authentication schemes + valid users = %S + +# Un-comment the following and create the netlogon directory for Domain Logons +# (you need to configure Samba to act as a domain controller too.) +;[netlogon] +; comment = Network Logon Service +; path = /home/samba/netlogon +; guest ok = yes +; read only = yes + +# Un-comment the following and create the profiles directory to store +# users profiles (see the "logon path" option above) +# (you need to configure Samba to act as a domain controller too.) +# The path below should be writable by all users so that their +# profile directory may be created the first time they log on +;[profiles] +; comment = Users profiles +; path = /home/samba/profiles +; guest ok = no +; browseable = no +; create mask = 0600 +; directory mask = 0700 + +[printers] + comment = All Printers + browseable = no + path = /var/spool/samba + printable = yes + guest ok = no + read only = yes + create mask = 0700 + +# Windows clients look for this share name as a source of downloadable +# printer drivers +[print$] + comment = Printer Drivers + path = /var/lib/samba/printers + browseable = yes + read only = yes + guest ok = no +# Uncomment to allow remote administration of Windows print drivers. +# You may need to replace 'lpadmin' with the name of the group your +# admin users are members of. +# Please note that you also need to set appropriate Unix permissions +# to the drivers directory for these users to have write rights in it +; write list = root, @lpadmin + diff --git a/linux/advanced/nextcloud/pure/latest/sources.list b/linux/advanced/nextcloud/pure/latest/sources.list new file mode 100644 index 000000000..5a8c0081a --- /dev/null +++ b/linux/advanced/nextcloud/pure/latest/sources.list @@ -0,0 +1,21 @@ +#main +deb http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free + +##multimedia +# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main diff --git a/linux/advanced/redash/Makefile b/linux/advanced/redash/Makefile new file mode 100644 index 000000000..dbd815f41 --- /dev/null +++ b/linux/advanced/redash/Makefile @@ -0,0 +1,30 @@ +all: app + +app: + make sync + make patch + make build + make deploy + make clean + +sync: + rm -rfv redash-repo + git submodule init + git submodule update --init --recursive + git submodule sync --recursive + +patch: + sed -i -e 's/# ldap3==2.2.4/ldap3==2.2.4/g' ./redash-repo/requirements.txt + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/redash/README.md b/linux/advanced/redash/README.md new file mode 100644 index 000000000..46d44d203 --- /dev/null +++ b/linux/advanced/redash/README.md @@ -0,0 +1,98 @@ +

+ +

+ +[![Documentation](https://img.shields.io/badge/docs-redash.io/help-brightgreen.svg)](https://redash.io/help/) +[![Datree](https://s3.amazonaws.com/catalog.static.datree.io/datree-badge-20px.svg)](https://datree.io/?src=badge) +[![Build Status](https://circleci.com/gh/getredash/redash.png?style=shield&circle-token=8a695aa5ec2cbfa89b48c275aea298318016f040)](https://circleci.com/gh/getredash/redash/tree/master) + +Redash is designed to enable anyone, regardless of the level of technical sophistication, to harness the power of data big and small. SQL users leverage Redash to explore, query, visualize, and share data from any data sources. Their work in turn enables anybody in their organization to use the data. Every day, millions of users at thousands of organizations around the world use Redash to develop insights and make data-driven decisions. + +Redash features: + +1. **Browser-based**: Everything in your browser, with a shareable URL. +2. **Ease-of-use**: Become immediately productive with data without the need to master complex software. +3. **Query editor**: Quickly compose SQL and NoSQL queries with a schema browser and auto-complete. +4. **Visualization and dashboards**: Create [beautiful visualizations](https://redash.io/help/user-guide/visualizations/visualization-types) with drag and drop, and combine them into a single dashboard. +5. **Sharing**: Collaborate easily by sharing visualizations and their associated queries, enabling peer review of reports and queries. +6. **Schedule refreshes**: Automatically update your charts and dashboards at regular intervals you define. +7. **Alerts**: Define conditions and be alerted instantly when your data changes. +8. **REST API**: Everything that can be done in the UI is also available through REST API. +9. **Broad support for data sources**: Extensible data source API with native support for a long list of common databases and platforms. + + + +## Getting Started + +* [Setting up Redash instance](https://redash.io/help/open-source/setup) (includes links to ready-made AWS/GCE images). +* [Documentation](https://redash.io/help/). + +## Supported Data Sources + +Redash supports more than 35 SQL and NoSQL [data sources](https://redash.io/help/data-sources/supported-data-sources). It can also be extended to support more. Below is a list of built-in sources: + +- Amazon Athena +- Amazon DynamoDB +- Amazon Redshift +- Axibase Time Series Database +- Cassandra +- ClickHouse +- CockroachDB +- CSV +- Databricks (Apache Spark) +- DB2 by IBM +- Druid +- Elasticsearch +- Google Analytics +- Google BigQuery +- Google Spreadsheets +- Graphite +- Greenplum +- Hive +- Impala +- InfluxDB +- JIRA +- JSON +- Apache Kylin +- OmniSciDB (Formerly MapD) +- MemSQL +- Microsoft Azure Data Warehouse / Synapse +- Microsoft Azure SQL Database +- Microsoft SQL Server +- MongoDB +- MySQL +- Oracle +- PostgreSQL +- Presto +- Prometheus +- Python +- Qubole +- Rockset +- Salesforce +- ScyllaDB +- Shell Scripts +- Snowflake +- SQLite +- TiDB +- TreasureData +- Vertica +- Yandex AppMetrrica +- Yandex Metrica + +## Getting Help + +* Issues: https://github.com/getredash/redash/issues +* Discussion Forum: https://discuss.redash.io/ + +## Reporting Bugs and Contributing Code + +* Want to report a bug or request a feature? Please open [an issue](https://github.com/getredash/redash/issues/new). +* Want to help us build **_Redash_**? Fork the project, edit in a [dev environment](https://redash.io/help-onpremise/dev/guide.html) and make a pull request. We need all the help we can get! + +## Security + +Please email security@redash.io to report any security vulnerabilities. We will acknowledge receipt of your vulnerability and strive to send you regular updates about our progress. If you're curious about the status of your disclosure please feel free to email us again. If you want to encrypt your disclosure email, you can use [this PGP key](https://keybase.io/arikfr/key.asc). + +## License + +BSD-2-Clause. diff --git a/linux/advanced/redash/docker-compose.example.yml b/linux/advanced/redash/docker-compose.example.yml new file mode 100644 index 000000000..82bcd245f --- /dev/null +++ b/linux/advanced/redash/docker-compose.example.yml @@ -0,0 +1,65 @@ +# This configuration file is for the **development** setup. +# For a production example please refer to getredash/setup repository on GitHub. +version: "2.2" +x-redash-service: &redash-service + build: + context: . + args: + skip_frontend_build: "true" + volumes: + - .:/app +x-redash-environment: &redash-environment + REDASH_LOG_LEVEL: "INFO" + REDASH_REDIS_URL: "redis://redis:6379/0" + REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres" + REDASH_RATELIMIT_ENABLED: "false" + REDASH_MAIL_DEFAULT_SENDER: "redash@example.com" + REDASH_MAIL_SERVER: "email" + REDASH_ENFORCE_CSRF: "true" +services: + server: + <<: *redash-service + command: dev_server + depends_on: + - postgres + - redis + ports: + - "5000:5000" + - "5678:5678" + environment: + <<: *redash-environment + PYTHONUNBUFFERED: 0 + scheduler: + <<: *redash-service + command: dev_scheduler + depends_on: + - server + environment: + <<: *redash-environment + worker: + <<: *redash-service + command: dev_worker + depends_on: + - server + environment: + <<: *redash-environment + PYTHONUNBUFFERED: 0 + redis: + image: redis:3-alpine + restart: unless-stopped + postgres: + image: postgres:9.5-alpine + # The following turns the DB into less durable, but gains significant performance improvements for the tests run (x3 + # improvement on my personal machine). We should consider moving this into a dedicated Docker Compose configuration for + # tests. + ports: + - "15432:5432" + command: "postgres -c fsync=off -c full_page_writes=off -c synchronous_commit=OFF" + restart: unless-stopped + environment: + POSTGRES_HOST_AUTH_METHOD: "trust" + email: + image: djfarrelly/maildev + ports: + - "1080:80" + restart: unless-stopped diff --git a/linux/advanced/redash/docker-compose.yml b/linux/advanced/redash/docker-compose.yml new file mode 100644 index 000000000..814119cd5 --- /dev/null +++ b/linux/advanced/redash/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/redash:latest" + build: + context: ./redash-repo diff --git a/linux/advanced/redash/redash-repo b/linux/advanced/redash/redash-repo new file mode 160000 index 000000000..2e67227f1 --- /dev/null +++ b/linux/advanced/redash/redash-repo @@ -0,0 +1 @@ +Subproject commit 2e67227f1bb6068c3f23bc044ad76ef7d4bccdc7 diff --git a/linux/teamcity/README.md b/linux/advanced/teamcity/README.md similarity index 100% rename from linux/teamcity/README.md rename to linux/advanced/teamcity/README.md diff --git a/linux/teamcity/server/Dockerfile b/linux/advanced/teamcity/server/Dockerfile similarity index 100% rename from linux/teamcity/server/Dockerfile rename to linux/advanced/teamcity/server/Dockerfile diff --git a/linux/advanced/teamcity/server/Makefile b/linux/advanced/teamcity/server/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/teamcity/server/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/teamcity/server/README.md b/linux/advanced/teamcity/server/README.md similarity index 100% rename from linux/teamcity/server/README.md rename to linux/advanced/teamcity/server/README.md diff --git a/linux/advanced/teamcity/server/docker-compose.yml b/linux/advanced/teamcity/server/docker-compose.yml new file mode 100644 index 000000000..ca5f2ec95 --- /dev/null +++ b/linux/advanced/teamcity/server/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-server:latest" + build: + context: . diff --git a/linux/epicmorg/prod/main/locale.gen b/linux/advanced/teamcity/server/locale.gen similarity index 100% rename from linux/epicmorg/prod/main/locale.gen rename to linux/advanced/teamcity/server/locale.gen diff --git a/linux/epicmorg/prod/main/locale.gen.full b/linux/advanced/teamcity/server/locale.gen.full similarity index 100% rename from linux/epicmorg/prod/main/locale.gen.full rename to linux/advanced/teamcity/server/locale.gen.full diff --git a/linux/teamcity/server/sources.list b/linux/advanced/teamcity/server/sources.list similarity index 100% rename from linux/teamcity/server/sources.list rename to linux/advanced/teamcity/server/sources.list diff --git a/linux/advanced/vscode-server/amxx/Dockerfile b/linux/advanced/vscode-server/amxx/Dockerfile new file mode 100644 index 000000000..cb4a5ba9f --- /dev/null +++ b/linux/advanced/vscode-server/amxx/Dockerfile @@ -0,0 +1,55 @@ +################################################################################ +# https://github.com/linuxserver/docker-code-server/pkgs/container/code-server +################################################################################ +FROM epicmorg/vscode-server:latest + +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +################################################################## +# AMXXModX setup +################################################################## +# +# Reserved for future +# export AMXX_CSTRIKE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-cstrike-linux` && \ +# export AMXX_DOD_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-dod-linux` && \ +# export AMXX_ESF_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-esf-linux` && \ +# export AMXX_NS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-ns-linux` && \ +# export AMXX_TFC_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-tfc-linux` && \ +# export AMXX_TS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-base-linux` && \ +# +# Install packages +ENV AMXX_VERSION=1.9 +ENV AMXX_INSTALL_PATH=/opt/amxmodx/$AMXX_VERSION +ENV AMXX_BIN_PATH=$AMXX_INSTALL_PATH/scripting +ENV PATH=$PATH:$AMXX_BIN_PATH +ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$AMXX_BIN_PATH + +RUN export AMXX_BASE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-base-linux` && \ + mkdir -p $AMXX_INSTALL_PATH && \ + curl -SL https://www.amxmodx.org/amxxdrop/{$AMXX_VERSION}/{$AMXX_BASE_LATEST_VERSION} -o /tmp/amxx_base_latest.tar.gz && \ + cd /tmp && tar -zxf /tmp/amxx_base_latest.tar.gz && cd / && \ + mv -f /tmp/addons/amxmodx/* $AMXX_INSTALL_PATH && \ + chmod +x $AMXX_BIN_PATH/amxxpc && \ + chmod +x $AMXX_BIN_PATH/compile.sh + +################################################################## +# cleaninig up +################################################################## +RUN apt purge policykit-1 -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /tmp/mc.patch && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/7z && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/advanced/vscode-server/amxx/Makefile b/linux/advanced/vscode-server/amxx/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/vscode-server/amxx/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/vscode-server/amxx/docker-compose.yml b/linux/advanced/vscode-server/amxx/docker-compose.yml new file mode 100644 index 000000000..de97728ff --- /dev/null +++ b/linux/advanced/vscode-server/amxx/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/vscode-server:amxx" + build: + context: . diff --git a/linux/advanced/vscode-server/android/Dockerfile b/linux/advanced/vscode-server/android/Dockerfile new file mode 100644 index 000000000..333c8af26 --- /dev/null +++ b/linux/advanced/vscode-server/android/Dockerfile @@ -0,0 +1,74 @@ +################################################################################ +# https://github.com/linuxserver/docker-code-server/pkgs/container/code-server +################################################################################ +FROM epicmorg/vscode-server:latest + +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +################################################################## +# Android SDK +################################################################## +ENV ANDROID_HOME=/usr/lib/android-sdk +ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk + +RUN apt update && \ + apt install -y --allow-unauthenticated \ + android-sdk \ + android-sdk-build-tools \ + android-sdk-platform-tools-common \ + android-sdk-platform-tools \ + adb fastboot f2fs-tools e2fsprogs libsqlite3-0 sqlite3 + +# Activate android sdk +RUN echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > /usr/lib/android-sdk/licenses/android-sdk-license + +################################################################## +# SDKMAN +################################################################## +#USER root +#RUN export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io?rcupdate=false" | bash +RUN export SDKMAN_DIR="/config/.sdkman" && curl -s "https://get.sdkman.io" | bash + +################################################################## +# Gradle +################################################################## +RUN /bin/bash -c "source /config/.sdkman/bin/sdkman-init.sh; sdk install gradle;" + +################################################################## +# Kotlin +################################################################## +RUN /bin/bash -c "source /config/.sdkman/bin/sdkman-init.sh; sdk install kotlin;" + +################################################################## +# installing java11 +################################################################## +RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ + echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ focal main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \ + apt-get update && \ + apt-get autoremove -y && \ + apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \ + mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \ + ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \ + ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib + +################################################################## +# cleaninig up +################################################################## +RUN apt purge policykit-1 -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /tmp/mc.patch && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/7z && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/advanced/vscode-server/android/Makefile b/linux/advanced/vscode-server/android/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/vscode-server/android/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/vscode-server/android/docker-compose.yml b/linux/advanced/vscode-server/android/docker-compose.yml new file mode 100644 index 000000000..588cc9db6 --- /dev/null +++ b/linux/advanced/vscode-server/android/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/vscode-server:android" + build: + context: . diff --git a/linux/advanced/vscode-server/cpp/Dockerfile b/linux/advanced/vscode-server/cpp/Dockerfile new file mode 100644 index 000000000..caeddabad --- /dev/null +++ b/linux/advanced/vscode-server/cpp/Dockerfile @@ -0,0 +1,125 @@ +################################################################################ +# https://github.com/linuxserver/docker-code-server/pkgs/container/code-server +################################################################################ +FROM epicmorg/vscode-server:latest + +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true +ARG NINJA_ARCH=linux +ARG NINJA_VERSION=latest +ARG NINJA_RELEASE_URL=https://api.github.com/repos/ninja-build/ninja/releases/${NINJA_VERSION} + +################################################################## +# deps +################################################################## +RUN apt-get update && \ + apt install -y --allow-unauthenticated --allow-downgrades \ + build-essential \ + autoconf-archive \ + gnu-standards \ + cmake \ + libunwind-dev \ + golang \ + at \ + autopkgtest \ + gcc-multilib \ + g++-multilib \ + libxkbcommon-dev \ + zlib1g-dev \ + libfreetype6-dev \ + libegl1-mesa-dev \ + libgles2-mesa-dev \ + libgbm-dev \ + uuid-dev \ + nvidia-cg-toolkit \ + nvidia-cg-dev \ + libavcodec-dev \ + libsdl2-dev \ + libsdl-image1.2-dev \ + libxml2-dev \ + yasm \ + devscripts \ + automake \ + libtool \ + autotools-dev \ + dpkg-dev \ + fakeroot \ + checkinstall \ + dh-make \ + zlib1g \ + zlib1g-dev \ + libssl-dev \ + libxslt-dev \ + libgd-dev \ + libpcre3-dev \ + libgeoip-dev \ + libkrb5-dev \ + libperl-dev \ + krb5-user \ + luajit \ + liblua5.1-0-dev \ + libmaxminddb-dev \ + libpam0g-dev \ + libldap2-dev \ + libavformat-dev \ + libavfilter-dev \ + libswscale-dev \ + libavcodec-dev \ + libz-dev \ + libhiredis-dev \ + libzip-dev \ + libcrypto++-dev \ + libbz2-dev \ + libvpx-dev \ + libvpx6 \ + libc6 \ + libgssapi-krb5-2 \ + liblttng-ust0 \ + libssl1.1 \ + libstdc++6 \ + zlib1g \ + tcl + +################################################################## +# Get NINJA binary +################################################################## +RUN curl -s ${NINJA_RELEASE_URL} | jq -r ".assets[] | select(.name | test(\"${NINJA_ARCH}\")) | .browser_download_url" > /tmp/ninja-url.txt && \ + cat /tmp/ninja-url.txt && \ + cd /tmp && \ + wget -q -c --input-file=/tmp/ninja-url.txt && \ + unzip -o /tmp/ninja-linux.zip -d /bin && \ + printf "\n--------------------------------\nninja version: $(ninja --version)\n--------------------------------\n\n" + +################################################################## +# steam runtime and ssdk +################################################################## +RUN cd / && \ + sudo mkdir valve && \ + cd valve && \ + sudo wget http://media.steampowered.com/client/runtime/steam-runtime-sdk_latest.tar.xz && \ + sudo tar xvf steam-runtime-sdk_latest.tar.xz && \ + sudo mv steam-runtime-sdk_2013-09-05 steam-runtime && \ + sudo chown root:root * -R && \ + cd steam-runtime && \ + printf '%s\n' 3 1 Y Y Y | ./setup.sh + +################################################################## +# cleaninig up +################################################################## +RUN apt purge policykit-1 -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /tmp/mc.patch && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/7z && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/advanced/vscode-server/cpp/Makefile b/linux/advanced/vscode-server/cpp/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/vscode-server/cpp/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/vscode-server/cpp/docker-compose.yml b/linux/advanced/vscode-server/cpp/docker-compose.yml new file mode 100644 index 000000000..24151f879 --- /dev/null +++ b/linux/advanced/vscode-server/cpp/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/vscode-server:cpp" + build: + context: . diff --git a/linux/advanced/vscode-server/devops/Dockerfile b/linux/advanced/vscode-server/devops/Dockerfile new file mode 100644 index 000000000..752465649 --- /dev/null +++ b/linux/advanced/vscode-server/devops/Dockerfile @@ -0,0 +1,295 @@ +################################################################################ +# https://github.com/linuxserver/docker-code-server/pkgs/container/code-server +################################################################################ +FROM epicmorg/vscode-server:latest + +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true +ARG NINJA_ARCH=linux +ARG NINJA_VERSION=latest +ARG NINJA_RELEASE_URL=https://api.github.com/repos/ninja-build/ninja/releases/${NINJA_VERSION} + +################################################################## +# deps +################################################################## +RUN apt-get update && \ + apt install -y --allow-unauthenticated --allow-downgrades \ + build-essential \ + autoconf-archive \ + gnu-standards \ + cmake \ + libunwind-dev \ + golang \ + at \ + autopkgtest \ + gcc-multilib \ + g++-multilib \ + libxkbcommon-dev \ + zlib1g-dev \ + libfreetype6-dev \ + libegl1-mesa-dev \ + libgles2-mesa-dev \ + libgbm-dev \ + uuid-dev \ + nvidia-cg-toolkit \ + nvidia-cg-dev \ + libavcodec-dev \ + libsdl2-dev \ + libsdl-image1.2-dev \ + libxml2-dev \ + yasm \ + devscripts \ + automake \ + libtool \ + autotools-dev \ + dpkg-dev \ + fakeroot \ + checkinstall \ + dh-make \ + zlib1g \ + zlib1g-dev \ + libssl-dev \ + libxslt-dev \ + libgd-dev \ + libpcre3-dev \ + libgeoip-dev \ + libkrb5-dev \ + libperl-dev \ + krb5-user \ + luajit \ + liblua5.1-0-dev \ + libmaxminddb-dev \ + libpam0g-dev \ + libldap2-dev \ + libavformat-dev \ + libavfilter-dev \ + libswscale-dev \ + libavcodec-dev \ + libz-dev \ + libhiredis-dev \ + libzip-dev \ + libcrypto++-dev \ + libbz2-dev \ + libvpx-dev \ + libvpx6 \ + libc6 \ + libgssapi-krb5-2 \ + liblttng-ust0 \ + libssl1.1 \ + libstdc++6 \ + zlib1g \ + tcl + +################################################################## +# Get NINJA binary +################################################################## +RUN curl -s ${NINJA_RELEASE_URL} | jq -r ".assets[] | select(.name | test(\"${NINJA_ARCH}\")) | .browser_download_url" > /tmp/ninja-url.txt && \ + cat /tmp/ninja-url.txt && \ + cd /tmp && \ + wget -q -c --input-file=/tmp/ninja-url.txt && \ + unzip -o /tmp/ninja-linux.zip -d /bin && \ + printf "\n--------------------------------\nninja version: $(ninja --version)\n--------------------------------\n\n" + +################################################################## +# steam runtime and ssdk +################################################################## +RUN cd / && \ + sudo mkdir valve && \ + cd valve && \ + sudo wget http://media.steampowered.com/client/runtime/steam-runtime-sdk_latest.tar.xz && \ + sudo tar xvf steam-runtime-sdk_latest.tar.xz && \ + sudo mv steam-runtime-sdk_2013-09-05 steam-runtime && \ + sudo chown root:root * -R && \ + cd steam-runtime && \ + printf '%s\n' 3 1 Y Y Y | ./setup.sh + +################################################################## +# docker setup +################################################################## + +#Install packages +RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ + echo 'deb https://download.docker.com/linux/ubuntu focal test' > /etc/apt/sources.list.d/docker.list && \ + apt-cache policy docker-ce && \ + apt-get update && \ + apt-get install -y --no-install-recommends --allow-unauthenticated \ + docker-ce \ + docker-ce-cli \ + containerd.io systemd && \ + systemctl disable docker + +# A better fix for TW-52939 Dockerfile build fails because of aufs +VOLUME /var/lib/docker + +COPY run-docker.sh /services/run-docker.sh +RUN chmod +x /services/run-docker.sh && \ + sync + +################################################################## +# docker compose setup +################################################################## +COPY docker-compose-update /usr/local/bin/docker-compose-update +RUN chmod +x /usr/local/bin/docker-compose-update && \ + sync + +#Try to test +RUN docker-compose-update + +#Install packages +RUN export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` && \ + echo "Latest compose is: ${DOCKER_COMPOSE_VERSION}" && \ + curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \ + chmod +x /usr/local/bin/docker-compose && \ + docker-compose -v + +################################################################## +# dotnet+powershell setup +################################################################## +# Opt out of the telemetry feature +ENV DOTNET_CLI_TELEMETRY_OPTOUT=true +# Disable first time experience +ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true +# Configure Kestrel web server to bind to port 80 when present +ENV ASPNETCORE_URLS=\ +# Enable detection of running in a container +ENV DOTNET_RUNNING_IN_CONTAINER=true +# Enable correct mode for dotnet watch (only mode supported in a container) +ENV DOTNET_USE_POLLING_FILE_WATCHER=true +# Skip extraction of XML docs - generally not useful within an image/container - helps perfomance +ENV NUGET_XMLDOC_MODE=skip +# unofficial support of openssl1.1 instead of 1.0 [https://stackoverflow.com/questions/51901359] +ENV CLR_OPENSSL_VERSION_OVERRIDE=45 +# PowerShell telemetry for docker image usage +ENV POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Ubuntu-20.04 + +#Install packages +RUN curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - && \ + echo 'deb [arch=amd64,arm64,armhf] https://packages.microsoft.com/ubuntu/20.04/prod focal main' > /etc/apt/sources.list.d/microsoft.dotnet.list && \ + apt-get update && \ + apt-get install -y --no-install-recommends --allow-unauthenticated \ + dotnet-sdk-2.1 \ + dotnet-runtime-deps-2.1 \ + dotnet-runtime-2.1 \ + dotnet-hostfxr-2.1 \ + dotnet-sdk-3.1 \ + dotnet-targeting-pack-3.1 \ + dotnet-runtime-deps-3.1 \ + dotnet-runtime-3.1 \ + dotnet-hostfxr-3.1 \ + dotnet-apphost-pack-3.1 \ + dotnet-sdk-5.0 \ + dotnet-targeting-pack-5.0 \ + dotnet-runtime-deps-5.0 \ + dotnet-runtime-5.0 \ + dotnet-hostfxr-5.0 \ + dotnet-apphost-pack-5.0 \ + dotnet-sdk-6.0 \ + dotnet-targeting-pack-6.0 \ + dotnet-runtime-deps-6.0 \ + dotnet-runtime-6.0 \ + dotnet-hostfxr-6.0 \ + dotnet-apphost-pack-6.0 \ + dotnet-host \ + procdump \ + procmon \ + powershell-preview \ + powershell + +# Trigger .NET CLI first run experience by running arbitrary cmd to populate local package cache +RUN dotnet help && \ + pwsh-preview -v && \ + pwsh -v + +################################################################## +# AMXXModX setup +################################################################## +# +# Reserved for future +# export AMXX_CSTRIKE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-cstrike-linux` && \ +# export AMXX_DOD_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-dod-linux` && \ +# export AMXX_ESF_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-esf-linux` && \ +# export AMXX_NS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-ns-linux` && \ +# export AMXX_TFC_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-tfc-linux` && \ +# export AMXX_TS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-base-linux` && \ +# +# Install packages +ENV AMXX_VERSION=1.9 +ENV AMXX_INSTALL_PATH=/opt/amxmodx/$AMXX_VERSION +ENV AMXX_BIN_PATH=$AMXX_INSTALL_PATH/scripting +ENV PATH=$PATH:$AMXX_BIN_PATH +ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$AMXX_BIN_PATH + +RUN export AMXX_BASE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-base-linux` && \ + mkdir -p $AMXX_INSTALL_PATH && \ + curl -SL https://www.amxmodx.org/amxxdrop/{$AMXX_VERSION}/{$AMXX_BASE_LATEST_VERSION} -o /tmp/amxx_base_latest.tar.gz && \ + cd /tmp && tar -zxf /tmp/amxx_base_latest.tar.gz && cd / && \ + mv -f /tmp/addons/amxmodx/* $AMXX_INSTALL_PATH && \ + chmod +x $AMXX_BIN_PATH/amxxpc && \ + chmod +x $AMXX_BIN_PATH/compile.sh + +################################################################## +# Android SDK +################################################################## +ENV ANDROID_HOME=/usr/lib/android-sdk +ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk + +RUN apt update && \ + apt install -y --allow-unauthenticated \ + android-sdk \ + android-sdk-build-tools \ + android-sdk-platform-tools-common \ + android-sdk-platform-tools \ + adb fastboot f2fs-tools e2fsprogs libsqlite3-0 sqlite3 + +# Activate android sdk +RUN echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > /usr/lib/android-sdk/licenses/android-sdk-license + +################################################################## +# SDKMAN +################################################################## +#USER root +#RUN export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io?rcupdate=false" | bash +RUN export SDKMAN_DIR="/config/.sdkman" && curl -s "https://get.sdkman.io" | bash + +################################################################## +# Gradle +################################################################## +RUN /bin/bash -c "source /config/.sdkman/bin/sdkman-init.sh; sdk install gradle;" + +################################################################## +# Kotlin +################################################################## +RUN /bin/bash -c "source /config/.sdkman/bin/sdkman-init.sh; sdk install kotlin;" + +################################################################## +# installing java11 +################################################################## +RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ + echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ focal main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \ + apt-get update && \ + apt-get autoremove -y && \ + apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \ + mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \ + ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \ + ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib + +################################################################## +# cleaninig up +################################################################## +RUN apt purge policykit-1 -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /tmp/mc.patch && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/7z && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/advanced/vscode-server/devops/Makefile b/linux/advanced/vscode-server/devops/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/vscode-server/devops/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/vscode-server/devops/docker-compose-update b/linux/advanced/vscode-server/devops/docker-compose-update new file mode 100755 index 000000000..1a43d1c9b --- /dev/null +++ b/linux/advanced/vscode-server/devops/docker-compose-update @@ -0,0 +1,39 @@ +#!/bin/bash + +export DOCKER_COMPOSE_REMOTE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` + +export DOCKER_COMPOSE_LOCAL_VERSION=`docker-compose -v` + +export DOCKER_COMPOSE_BIN=/usr/local/bin/docker-compose + +if [ -f $DOCKER_COMPOSE_BIN ]; then + echo "========================================================================================" + echo "The file '$DOCKER_COMPOSE_BIN' exists." + echo "========================================================================================" + echo "Local Docker Compose version is: ${DOCKER_COMPOSE_LOCAL_VERSION}" + echo "========================================================================================" +else + echo "========================================================================================" + echo "The file '$DOCKER_COMPOSE_BIN' in not found. Installing..." + echo "========================================================================================" +fi + +echo "========================================================================================" +echo "Latest Docker Compose version is: ${DOCKER_COMPOSE_REMOTE_VERSION}" +echo "========================================================================================" + + +echo "========================================================================================" +echo "Installing remote version:" +echo "========================================================================================" +curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_REMOTE_VERSION}/docker-compose-Linux-x86_64 -o $DOCKER_COMPOSE_BIN + +echo "========================================================================================" +echo "Setting up permissions..." +echo "========================================================================================" +chmod +x $DOCKER_COMPOSE_BIN + + +echo "========================================================================================" +echo "Updated Docker Compose version is: ${DOCKER_COMPOSE_LOCAL_VERSION}" +echo "========================================================================================" diff --git a/linux/advanced/vscode-server/devops/docker-compose.yml b/linux/advanced/vscode-server/devops/docker-compose.yml new file mode 100644 index 000000000..9e84a7ad1 --- /dev/null +++ b/linux/advanced/vscode-server/devops/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/vscode-server:devops" + build: + context: . diff --git a/linux/teamcity/agent/run-docker.sh b/linux/advanced/vscode-server/devops/run-docker.sh similarity index 100% rename from linux/teamcity/agent/run-docker.sh rename to linux/advanced/vscode-server/devops/run-docker.sh diff --git a/linux/advanced/vscode-server/docker/Dockerfile b/linux/advanced/vscode-server/docker/Dockerfile new file mode 100644 index 000000000..cdc3eb807 --- /dev/null +++ b/linux/advanced/vscode-server/docker/Dockerfile @@ -0,0 +1,68 @@ +################################################################################ +# https://github.com/linuxserver/docker-code-server/pkgs/container/code-server +################################################################################ +FROM epicmorg/vscode-server:latest + +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + + +################################################################## +# docker setup +################################################################## + +#Install packages +RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ + echo 'deb https://download.docker.com/linux/ubuntu focal test' > /etc/apt/sources.list.d/docker.list && \ + apt-cache policy docker-ce && \ + apt-get update && \ + apt-get install -y --no-install-recommends --allow-unauthenticated \ + docker-ce \ + docker-ce-cli \ + containerd.io systemd && \ + systemctl disable docker + +# A better fix for TW-52939 Dockerfile build fails because of aufs +VOLUME /var/lib/docker + +COPY run-docker.sh /services/run-docker.sh +RUN chmod +x /services/run-docker.sh && \ + sync + +################################################################## +# docker compose setup +################################################################## +COPY docker-compose-update /usr/local/bin/docker-compose-update +RUN chmod +x /usr/local/bin/docker-compose-update && \ + sync + +#Try to test +RUN docker-compose-update + +#Install packages +RUN export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` && \ + echo "Latest compose is: ${DOCKER_COMPOSE_VERSION}" && \ + curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \ + chmod +x /usr/local/bin/docker-compose && \ + docker-compose -v + +################################################################## +# cleaninig up +################################################################## +RUN apt purge policykit-1 -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /tmp/mc.patch && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/7z && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/advanced/vscode-server/docker/Makefile b/linux/advanced/vscode-server/docker/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/vscode-server/docker/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/vscode-server/docker/docker-compose-update b/linux/advanced/vscode-server/docker/docker-compose-update new file mode 100755 index 000000000..1a43d1c9b --- /dev/null +++ b/linux/advanced/vscode-server/docker/docker-compose-update @@ -0,0 +1,39 @@ +#!/bin/bash + +export DOCKER_COMPOSE_REMOTE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` + +export DOCKER_COMPOSE_LOCAL_VERSION=`docker-compose -v` + +export DOCKER_COMPOSE_BIN=/usr/local/bin/docker-compose + +if [ -f $DOCKER_COMPOSE_BIN ]; then + echo "========================================================================================" + echo "The file '$DOCKER_COMPOSE_BIN' exists." + echo "========================================================================================" + echo "Local Docker Compose version is: ${DOCKER_COMPOSE_LOCAL_VERSION}" + echo "========================================================================================" +else + echo "========================================================================================" + echo "The file '$DOCKER_COMPOSE_BIN' in not found. Installing..." + echo "========================================================================================" +fi + +echo "========================================================================================" +echo "Latest Docker Compose version is: ${DOCKER_COMPOSE_REMOTE_VERSION}" +echo "========================================================================================" + + +echo "========================================================================================" +echo "Installing remote version:" +echo "========================================================================================" +curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_REMOTE_VERSION}/docker-compose-Linux-x86_64 -o $DOCKER_COMPOSE_BIN + +echo "========================================================================================" +echo "Setting up permissions..." +echo "========================================================================================" +chmod +x $DOCKER_COMPOSE_BIN + + +echo "========================================================================================" +echo "Updated Docker Compose version is: ${DOCKER_COMPOSE_LOCAL_VERSION}" +echo "========================================================================================" diff --git a/linux/advanced/vscode-server/docker/docker-compose.yml b/linux/advanced/vscode-server/docker/docker-compose.yml new file mode 100644 index 000000000..6657a9679 --- /dev/null +++ b/linux/advanced/vscode-server/docker/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/vscode-server:docker" + build: + context: . diff --git a/linux/advanced/vscode-server/docker/run-docker.sh b/linux/advanced/vscode-server/docker/run-docker.sh new file mode 100755 index 000000000..41b5e68e5 --- /dev/null +++ b/linux/advanced/vscode-server/docker/run-docker.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if [ "$DOCKER_IN_DOCKER" = "start" ] ; then + rm /var/run/docker.pid 2>/dev/null + service docker start + echo "Docker daemon started" +fi diff --git a/linux/advanced/vscode-server/dotnet/Dockerfile b/linux/advanced/vscode-server/dotnet/Dockerfile new file mode 100644 index 000000000..51639c1ec --- /dev/null +++ b/linux/advanced/vscode-server/dotnet/Dockerfile @@ -0,0 +1,86 @@ +################################################################################ +# https://github.com/linuxserver/docker-code-server/pkgs/container/code-server +################################################################################ +FROM epicmorg/vscode-server:latest + +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +################################################################## +# dotnet+powershell setup +################################################################## +# Opt out of the telemetry feature +ENV DOTNET_CLI_TELEMETRY_OPTOUT=true +# Disable first time experience +ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true +# Configure Kestrel web server to bind to port 80 when present +ENV ASPNETCORE_URLS=\ +# Enable detection of running in a container +ENV DOTNET_RUNNING_IN_CONTAINER=true +# Enable correct mode for dotnet watch (only mode supported in a container) +ENV DOTNET_USE_POLLING_FILE_WATCHER=true +# Skip extraction of XML docs - generally not useful within an image/container - helps perfomance +ENV NUGET_XMLDOC_MODE=skip +# unofficial support of openssl1.1 instead of 1.0 [https://stackoverflow.com/questions/51901359] +ENV CLR_OPENSSL_VERSION_OVERRIDE=45 +# PowerShell telemetry for docker image usage +ENV POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Ubuntu-20.04 + +#Install packages +RUN curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - && \ + echo 'deb [arch=amd64,arm64,armhf] https://packages.microsoft.com/ubuntu/20.04/prod focal main' > /etc/apt/sources.list.d/microsoft.dotnet.list && \ + apt-get update && \ + apt-get install -y --no-install-recommends --allow-unauthenticated \ + dotnet-sdk-2.1 \ + dotnet-runtime-deps-2.1 \ + dotnet-runtime-2.1 \ + dotnet-hostfxr-2.1 \ + dotnet-sdk-3.1 \ + dotnet-targeting-pack-3.1 \ + dotnet-runtime-deps-3.1 \ + dotnet-runtime-3.1 \ + dotnet-hostfxr-3.1 \ + dotnet-apphost-pack-3.1 \ + dotnet-sdk-5.0 \ + dotnet-targeting-pack-5.0 \ + dotnet-runtime-deps-5.0 \ + dotnet-runtime-5.0 \ + dotnet-hostfxr-5.0 \ + dotnet-apphost-pack-5.0 \ + dotnet-sdk-6.0 \ + dotnet-targeting-pack-6.0 \ + dotnet-runtime-deps-6.0 \ + dotnet-runtime-6.0 \ + dotnet-hostfxr-6.0 \ + dotnet-apphost-pack-6.0 \ + dotnet-host \ + procdump \ + procmon \ + powershell-preview \ + powershell + +# Trigger .NET CLI first run experience by running arbitrary cmd to populate local package cache +RUN dotnet help && \ + pwsh-preview -v && \ + pwsh -v + +################################################################## +# cleaninig up +################################################################## +RUN apt purge policykit-1 -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /tmp/mc.patch && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/7z && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/advanced/vscode-server/dotnet/Makefile b/linux/advanced/vscode-server/dotnet/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/vscode-server/dotnet/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/vscode-server/dotnet/docker-compose.yml b/linux/advanced/vscode-server/dotnet/docker-compose.yml new file mode 100644 index 000000000..fec266aff --- /dev/null +++ b/linux/advanced/vscode-server/dotnet/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/vscode-server:dotnet" + build: + context: . diff --git a/linux/advanced/vscode-server/latest/Dockerfile b/linux/advanced/vscode-server/latest/Dockerfile new file mode 100644 index 000000000..3da0479cd --- /dev/null +++ b/linux/advanced/vscode-server/latest/Dockerfile @@ -0,0 +1,131 @@ +################################################################################ +# https://github.com/linuxserver/docker-code-server/pkgs/container/code-server +################################################################################ +FROM ghcr.io/linuxserver/code-server:focal + +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +USER root + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +################################################################## +# 7z official binary +################################################################## +ENV SZ_VERSION=7z2103 +ENV SZ_DOWNLOAD_URL=https://www.7-zip.org/a/${SZ_VERSION}-linux-x64.tar.xz + +################################################################## +# installing utils +################################################################## +# libzip4 \ +# lbzip2 \ +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + apt-transport-https \ + apt-utils \ + aptitude \ + bash \ + binutils \ + bzip2 \ + ca-certificates \ + cmatrix \ + cmatrix-xfont \ + console-cyrillic \ + cron \ + curl \ + clzip \ + dos2unix \ + ffmpeg \ + fontconfig \ + git \ + gnupg \ + gnupg2 \ + graphicsmagick \ + gzip \ + htop \ + iftop \ + iputils-ping \ + jq \ + kmod \ + libxml2-dev \ + libxml2-utils \ + libsvn-java \ + locales \ + lsb-release \ + lsof \ + lynx \ + lzma \ + lzip \ + lzop \ + mc \ + mercurial \ + nano \ + nload \ + nmap \ + openssl \ + perl \ + procps \ + pbzip2 \ + plzip \ + p7zip-full \ + p7zip-rar \ + rsync \ + rar \ + screenfetch \ + smbclient \ + software-properties-common \ + subversion \ + sudo \ + telnet \ + tini \ + tmux \ + tree \ + util-linux \ + uuid-runtime \ + unrar \ + xz-utils \ + wget \ + zip + +################################################################## +# Install 7z official binary +################################################################## +RUN wget -nv --random-wait -c -O /tmp/7z.tar.xz ${SZ_DOWNLOAD_URL} && \ + mkdir -p /tmp/7z && \ + tar -xf /tmp/7z.tar.xz -C /tmp/7z && \ + chmod +x /tmp/7z/7zz && \ + mv -fv /tmp/7z/7zz /usr/bin/ && \ + 7zz | head -4 && \ + 7z | head -4 + + +################################################################## +# Install GitHub CLI binary +################################################################## +RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg && \ + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null && \ + sudo apt update && \ + sudo apt install -y --allow-unauthenticated gh && \ + gh --version + +################################################################## +# cleaninig up +################################################################## +RUN apt purge policykit-1 -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /tmp/mc.patch && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/7z && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/advanced/vscode-server/latest/Makefile b/linux/advanced/vscode-server/latest/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/vscode-server/latest/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/advanced/vscode-server/latest/docker-compose.yml b/linux/advanced/vscode-server/latest/docker-compose.yml new file mode 100644 index 000000000..6b70d72da --- /dev/null +++ b/linux/advanced/vscode-server/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/vscode-server:latest" + build: + context: . diff --git a/linux/zabbix/agent/Dockerfile b/linux/advanced/zabbix/agent/Dockerfile similarity index 100% rename from linux/zabbix/agent/Dockerfile rename to linux/advanced/zabbix/agent/Dockerfile diff --git a/linux/advanced/zabbix/agent/Makefile b/linux/advanced/zabbix/agent/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/zabbix/agent/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/zabbix/agent/README.md b/linux/advanced/zabbix/agent/README.md similarity index 100% rename from linux/zabbix/agent/README.md rename to linux/advanced/zabbix/agent/README.md diff --git a/linux/advanced/zabbix/agent/docker-compose.yml b/linux/advanced/zabbix/agent/docker-compose.yml new file mode 100644 index 000000000..711b522db --- /dev/null +++ b/linux/advanced/zabbix/agent/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/zabbix-agent:latest" + build: + context: . diff --git a/linux/teamcity/server/locale.gen b/linux/advanced/zabbix/agent/locale.gen similarity index 100% rename from linux/teamcity/server/locale.gen rename to linux/advanced/zabbix/agent/locale.gen diff --git a/linux/teamcity/server/locale.gen.full b/linux/advanced/zabbix/agent/locale.gen.full similarity index 100% rename from linux/teamcity/server/locale.gen.full rename to linux/advanced/zabbix/agent/locale.gen.full diff --git a/linux/zabbix/agent/sources.list b/linux/advanced/zabbix/agent/sources.list similarity index 100% rename from linux/zabbix/agent/sources.list rename to linux/advanced/zabbix/agent/sources.list diff --git a/linux/zabbix/java-gateway/Dockerfile b/linux/advanced/zabbix/java-gateway/Dockerfile similarity index 100% rename from linux/zabbix/java-gateway/Dockerfile rename to linux/advanced/zabbix/java-gateway/Dockerfile diff --git a/linux/advanced/zabbix/java-gateway/Makefile b/linux/advanced/zabbix/java-gateway/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/zabbix/java-gateway/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/zabbix/java-gateway/README.md b/linux/advanced/zabbix/java-gateway/README.md similarity index 100% rename from linux/zabbix/java-gateway/README.md rename to linux/advanced/zabbix/java-gateway/README.md diff --git a/linux/advanced/zabbix/java-gateway/docker-compose.yml b/linux/advanced/zabbix/java-gateway/docker-compose.yml new file mode 100644 index 000000000..7a2a51cd1 --- /dev/null +++ b/linux/advanced/zabbix/java-gateway/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/zabbix-java-gateway:latest" + build: + context: . diff --git a/linux/zabbix/agent/locale.gen b/linux/advanced/zabbix/java-gateway/locale.gen similarity index 100% rename from linux/zabbix/agent/locale.gen rename to linux/advanced/zabbix/java-gateway/locale.gen diff --git a/linux/zabbix/agent/locale.gen.full b/linux/advanced/zabbix/java-gateway/locale.gen.full similarity index 100% rename from linux/zabbix/agent/locale.gen.full rename to linux/advanced/zabbix/java-gateway/locale.gen.full diff --git a/linux/zabbix/java-gateway/sources.list b/linux/advanced/zabbix/java-gateway/sources.list similarity index 100% rename from linux/zabbix/java-gateway/sources.list rename to linux/advanced/zabbix/java-gateway/sources.list diff --git a/linux/zabbix/proxy/Dockerfile b/linux/advanced/zabbix/proxy/Dockerfile similarity index 100% rename from linux/zabbix/proxy/Dockerfile rename to linux/advanced/zabbix/proxy/Dockerfile diff --git a/linux/advanced/zabbix/proxy/Makefile b/linux/advanced/zabbix/proxy/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/zabbix/proxy/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/zabbix/proxy/README.md b/linux/advanced/zabbix/proxy/README.md similarity index 100% rename from linux/zabbix/proxy/README.md rename to linux/advanced/zabbix/proxy/README.md diff --git a/linux/advanced/zabbix/proxy/docker-compose.yml b/linux/advanced/zabbix/proxy/docker-compose.yml new file mode 100644 index 000000000..0f07d0583 --- /dev/null +++ b/linux/advanced/zabbix/proxy/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/zabbix-proxy-sqlite3:latest" + build: + context: . diff --git a/linux/zabbix/java-gateway/locale.gen b/linux/advanced/zabbix/proxy/locale.gen similarity index 100% rename from linux/zabbix/java-gateway/locale.gen rename to linux/advanced/zabbix/proxy/locale.gen diff --git a/linux/zabbix/java-gateway/locale.gen.full b/linux/advanced/zabbix/proxy/locale.gen.full similarity index 100% rename from linux/zabbix/java-gateway/locale.gen.full rename to linux/advanced/zabbix/proxy/locale.gen.full diff --git a/linux/zabbix/proxy/sources.list b/linux/advanced/zabbix/proxy/sources.list similarity index 100% rename from linux/zabbix/proxy/sources.list rename to linux/advanced/zabbix/proxy/sources.list diff --git a/linux/zabbix/server/Dockerfile b/linux/advanced/zabbix/server/Dockerfile similarity index 100% rename from linux/zabbix/server/Dockerfile rename to linux/advanced/zabbix/server/Dockerfile diff --git a/linux/advanced/zabbix/server/Makefile b/linux/advanced/zabbix/server/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/zabbix/server/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/zabbix/server/README.md b/linux/advanced/zabbix/server/README.md similarity index 100% rename from linux/zabbix/server/README.md rename to linux/advanced/zabbix/server/README.md diff --git a/linux/advanced/zabbix/server/docker-compose.yml b/linux/advanced/zabbix/server/docker-compose.yml new file mode 100644 index 000000000..c0e262612 --- /dev/null +++ b/linux/advanced/zabbix/server/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/zabbix-server-mysql:latest" + build: + context: . diff --git a/linux/zabbix/proxy/locale.gen b/linux/advanced/zabbix/server/locale.gen similarity index 100% rename from linux/zabbix/proxy/locale.gen rename to linux/advanced/zabbix/server/locale.gen diff --git a/linux/zabbix/proxy/locale.gen.full b/linux/advanced/zabbix/server/locale.gen.full similarity index 100% rename from linux/zabbix/proxy/locale.gen.full rename to linux/advanced/zabbix/server/locale.gen.full diff --git a/linux/zabbix/server/sources.list b/linux/advanced/zabbix/server/sources.list similarity index 100% rename from linux/zabbix/server/sources.list rename to linux/advanced/zabbix/server/sources.list diff --git a/linux/zabbix/web/Dockerfile b/linux/advanced/zabbix/web/Dockerfile similarity index 100% rename from linux/zabbix/web/Dockerfile rename to linux/advanced/zabbix/web/Dockerfile diff --git a/linux/advanced/zabbix/web/Makefile b/linux/advanced/zabbix/web/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/advanced/zabbix/web/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/zabbix/web/README.md b/linux/advanced/zabbix/web/README.md similarity index 100% rename from linux/zabbix/web/README.md rename to linux/advanced/zabbix/web/README.md diff --git a/linux/advanced/zabbix/web/docker-compose.yml b/linux/advanced/zabbix/web/docker-compose.yml new file mode 100644 index 000000000..d8c673d98 --- /dev/null +++ b/linux/advanced/zabbix/web/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/zabbix-web-apache-mysql:latest" + build: + context: . diff --git a/linux/zabbix/server/locale.gen b/linux/advanced/zabbix/web/locale.gen similarity index 100% rename from linux/zabbix/server/locale.gen rename to linux/advanced/zabbix/web/locale.gen diff --git a/linux/zabbix/server/locale.gen.full b/linux/advanced/zabbix/web/locale.gen.full similarity index 100% rename from linux/zabbix/server/locale.gen.full rename to linux/advanced/zabbix/web/locale.gen.full diff --git a/linux/zabbix/web/sources.list b/linux/advanced/zabbix/web/sources.list similarity index 100% rename from linux/zabbix/web/sources.list rename to linux/advanced/zabbix/web/sources.list diff --git a/linux/apache2/latest/Dockerfile b/linux/apache2/latest/Dockerfile deleted file mode 100644 index 70697da92..000000000 --- a/linux/apache2/latest/Dockerfile +++ /dev/null @@ -1,98 +0,0 @@ -FROM epicmorg/php:latest -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 -ARG PHP_VER=7.4 -ARG PHP_DIR=/etc/php/${PHP_VER} -ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini -ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini - -################################################################## -# Installing Apache2 -################################################################## -#installing apache2 repo -RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' - -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - apache2 \ - apache2-utils \ - libapache2-mod-php7.4 \ - libapache2-mod-webauth \ - libapache2-mod-xforward \ - libapache2-mod-security2 && \ - a2enmod \ - php7.4 \ - rewrite \ - ldap \ - heartmonitor \ - auth_basic \ - authnz_ldap \ - headers \ - heartbeat \ - lua \ - mime \ - status \ - xml2enc \ - xforward \ - remoteip \ - filter \ - dav \ - dav_fs \ - alias && \ - ln -sf /etc/ssl/dhparam.pem /etc/apache2/dhparam.pem && \ - php -m && \ - php -v - -################################################################## -# LDAP Fix -################################################################## -RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf - -################################################################## -# Installing IOnCube addon -################################################################## -RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ - php -m && \ - php -v - -################################################################## -# Installing P4 addon -################################################################## -RUN ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \ - php -m && \ - php -v - -################################################################## -# Installing smbclient addon -################################################################## -RUN ln -sf ${SMB_PHP_INI} ${PHP_DIR}/apache2/conf.d/smbclient.ini && \ - php -m && \ - php -v - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz - -#volumes -VOLUME ["/var/www"] - -# Add image configuration and scripts -COPY run.sh /run.sh -RUN chmod 755 /*.sh - -# Configure application -EXPOSE 80 -WORKDIR /var/www/ -CMD ["/run.sh"] diff --git a/linux/apache2/latest/Makefile b/linux/apache2/latest/Makefile deleted file mode 100644 index 5807f7dc3..000000000 --- a/linux/apache2/latest/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -all: apache2 -apache2: - docker build --compress -t epicmorg/apache2:latest . - docker push epicmorg/apache2:latest - - docker tag epicmorg/apache2:latest epicmorg/websites:latest - docker push epicmorg/websites:latest \ No newline at end of file diff --git a/linux/apache2/php7.2/Dockerfile b/linux/apache2/php7.2/Dockerfile deleted file mode 100644 index c59fca7bf..000000000 --- a/linux/apache2/php7.2/Dockerfile +++ /dev/null @@ -1,92 +0,0 @@ -FROM epicmorg/php:php7.2 -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -ARG PHP_MODULE_PATH=/usr/lib/php/20170718 -ARG PHP_VER=7.2 -ARG PHP_DIR=/etc/php/${PHP_VER} -ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini - -################################################################## -# Installing Apache2 -################################################################## -#installing apache2 repo -RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' - -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - apache2 \ - apache2-utils \ - libapache2-mod-php7.2 \ - libapache2-mod-webauth \ - libapache2-mod-xforward \ - libapache2-mod-security2 \ - libmemcached-dev && \ - a2enmod \ - php7.2 \ - rewrite \ - ldap \ - heartmonitor \ - auth_basic \ - authnz_ldap \ - headers \ - heartbeat \ - lua \ - mime \ - status \ - xml2enc \ - xforward \ - remoteip \ - filter \ - dav \ - dav_fs \ - alias && \ - ln -sf /etc/ssl/dhparam.pem /etc/apache2/dhparam.pem && \ - php -m && \ - php -v - -################################################################## -# LDAP Fix -################################################################## -RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf - -################################################################## -# Installing IOnCube addon -################################################################## -RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PHP_DIR}/apache2/php.ini && \ - php -m && \ - php -v - - -################################################################## -# Installing P4 addon -################################################################## -RUN ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \ - php -m && \ - php -v - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz - -#volumes -VOLUME ["/var/www"] - -# Add image configuration and scripts -COPY run.sh /run.sh -RUN chmod 755 /*.sh - -# Configure application -EXPOSE 80 -WORKDIR /var/www/ -CMD ["/run.sh"] diff --git a/linux/apache2/php7.2/Makefile b/linux/apache2/php7.2/Makefile deleted file mode 100644 index e10f24c18..000000000 --- a/linux/apache2/php7.2/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -all: apache2 -apache2: - docker build --compress -t epicmorg/apache2:php7.2 . - docker push epicmorg/apache2:php7.2 - - docker tag epicmorg/apache2:php7.2 epicmorg/websites:php7.2 - docker push epicmorg/websites:php7.2 \ No newline at end of file diff --git a/linux/apache2/php7.3/Dockerfile b/linux/apache2/php7.3/Dockerfile deleted file mode 100644 index e42e0ad7e..000000000 --- a/linux/apache2/php7.3/Dockerfile +++ /dev/null @@ -1,91 +0,0 @@ -FROM epicmorg/php:php7.3 -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -ARG PHP_MODULE_PATH=/usr/lib/php/20180731 -ARG PHP_VER=7.3 -ARG PHP_DIR=/etc/php/${PHP_VER} -ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini - -################################################################## -# Installing Apache2 -################################################################## -#installing apache2 repo -RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' - -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - apache2 \ - apache2-utils \ - libapache2-mod-php7.3 \ - libapache2-mod-webauth \ - libapache2-mod-xforward \ - libapache2-mod-security2 \ - libmemcached-dev && \ - a2enmod \ - php7.3 \ - rewrite \ - ldap \ - heartmonitor \ - auth_basic \ - authnz_ldap \ - headers \ - heartbeat \ - lua \ - mime \ - status \ - xml2enc \ - xforward \ - remoteip \ - filter \ - dav \ - dav_fs \ - alias && \ - ln -sf /etc/ssl/dhparam.pem /etc/apache2/dhparam.pem && \ - php -m && \ - php -v - -################################################################## -# LDAP Fix -################################################################## -RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf - -################################################################## -# Installing IOnCube addon -################################################################## -RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${PHP_DIR}/apache2/php.ini && \ - php -m && \ - php -v - -################################################################## -# Installing Composer addon -################################################################## -RUN cd /tmp && \ - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ - php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ - rm /tmp/composer-setup.php - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz - -#volumes -VOLUME ["/var/www"] - -# Add image configuration and scripts -COPY run.sh /run.sh -RUN chmod 755 /*.sh - -# Configure application -EXPOSE 80 -WORKDIR /var/www/ -CMD ["/run.sh"] diff --git a/linux/apache2/php7.3/Makefile b/linux/apache2/php7.3/Makefile deleted file mode 100644 index 39f4fc5a9..000000000 --- a/linux/apache2/php7.3/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -all: apache2 -apache2: - docker build --compress -t epicmorg/apache2:php7.3 . - docker push epicmorg/apache2:php7.3 - - docker tag epicmorg/apache2:php7.3 epicmorg/websites:php7.3 - docker push epicmorg/websites:php7.3 - diff --git a/linux/apache2/php7.4/Dockerfile b/linux/apache2/php7.4/Dockerfile deleted file mode 100644 index 70697da92..000000000 --- a/linux/apache2/php7.4/Dockerfile +++ /dev/null @@ -1,98 +0,0 @@ -FROM epicmorg/php:latest -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 -ARG PHP_VER=7.4 -ARG PHP_DIR=/etc/php/${PHP_VER} -ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini -ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini - -################################################################## -# Installing Apache2 -################################################################## -#installing apache2 repo -RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' - -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - apache2 \ - apache2-utils \ - libapache2-mod-php7.4 \ - libapache2-mod-webauth \ - libapache2-mod-xforward \ - libapache2-mod-security2 && \ - a2enmod \ - php7.4 \ - rewrite \ - ldap \ - heartmonitor \ - auth_basic \ - authnz_ldap \ - headers \ - heartbeat \ - lua \ - mime \ - status \ - xml2enc \ - xforward \ - remoteip \ - filter \ - dav \ - dav_fs \ - alias && \ - ln -sf /etc/ssl/dhparam.pem /etc/apache2/dhparam.pem && \ - php -m && \ - php -v - -################################################################## -# LDAP Fix -################################################################## -RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf - -################################################################## -# Installing IOnCube addon -################################################################## -RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ - php -m && \ - php -v - -################################################################## -# Installing P4 addon -################################################################## -RUN ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \ - php -m && \ - php -v - -################################################################## -# Installing smbclient addon -################################################################## -RUN ln -sf ${SMB_PHP_INI} ${PHP_DIR}/apache2/conf.d/smbclient.ini && \ - php -m && \ - php -v - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz - -#volumes -VOLUME ["/var/www"] - -# Add image configuration and scripts -COPY run.sh /run.sh -RUN chmod 755 /*.sh - -# Configure application -EXPOSE 80 -WORKDIR /var/www/ -CMD ["/run.sh"] diff --git a/linux/apache2/php7.4/Makefile b/linux/apache2/php7.4/Makefile deleted file mode 100644 index 810c88cf6..000000000 --- a/linux/apache2/php7.4/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -all: apache2 -apache2: - docker build --compress -t epicmorg/apache2:php7.4 . - docker push epicmorg/apache2:php7.4 - - docker tag epicmorg/apache2:php7.4 epicmorg/websites:php7.4 - docker push epicmorg/websites:php7.4 - diff --git a/linux/atlassian/bitbucket/latest/Dockerfile b/linux/atlassian/bitbucket/latest/Dockerfile deleted file mode 100644 index c21658472..000000000 --- a/linux/atlassian/bitbucket/latest/Dockerfile +++ /dev/null @@ -1,45 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG BITBUCKET_VERSION=7.11.2 -ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory -ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket -ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket - -VOLUME ["${BITBUCKET_HOME}"] -WORKDIR $BITBUCKET_HOME - -# Expose HTTP and SSH ports -EXPOSE 7990 -EXPOSE 7999 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \ - && sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/bitbucket/latest/Makefile b/linux/atlassian/bitbucket/latest/Makefile deleted file mode 100644 index 837bad7bf..000000000 --- a/linux/atlassian/bitbucket/latest/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: bitbucket - -bitbucket: - docker build --compress -t epicmorg/bitbucket . - docker push epicmorg/bitbucket:latest \ No newline at end of file diff --git a/linux/atlassian/confluence/5/5.5/README.md b/linux/atlassian/confluence/5/5.5/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/5/5.5/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/5/5.9.14/README.md b/linux/atlassian/confluence/5/5.9.14/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/5/5.9.14/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/5/README.md b/linux/atlassian/confluence/5/README.md deleted file mode 100644 index 0b5136ccf..000000000 --- a/linux/atlassian/confluence/5/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# [Atlassian Enterprise releases](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html) -## Build info - -All presented images avalible on our repo in docker hub. - -------- - -*Some old versions of Confluence may fail health check with [AdoptOpenJDK](https://github.com/AdoptOpenJDK) (open source, prebuilt OpenJDK binaries). But it will be works.* \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.0.1/Dockerfile b/linux/atlassian/confluence/6/6.0.1/Dockerfile deleted file mode 100644 index 60a125dfc..000000000 --- a/linux/atlassian/confluence/6/6.0.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.0.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.0.1/Makefile b/linux/atlassian/confluence/6/6.0.1/Makefile deleted file mode 100644 index 54e5248ee..000000000 --- a/linux/atlassian/confluence/6/6.0.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.0.1 . - diff --git a/linux/atlassian/confluence/6/6.0.1/README.md b/linux/atlassian/confluence/6/6.0.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.0.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.0.2/Dockerfile b/linux/atlassian/confluence/6/6.0.2/Dockerfile deleted file mode 100644 index 5d6a9c22f..000000000 --- a/linux/atlassian/confluence/6/6.0.2/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.0.2 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.0.2/Makefile b/linux/atlassian/confluence/6/6.0.2/Makefile deleted file mode 100644 index bf0b01cd0..000000000 --- a/linux/atlassian/confluence/6/6.0.2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.0.2 . - diff --git a/linux/atlassian/confluence/6/6.0.2/README.md b/linux/atlassian/confluence/6/6.0.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.0.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.0.3/Dockerfile b/linux/atlassian/confluence/6/6.0.3/Dockerfile deleted file mode 100644 index 477bff4c3..000000000 --- a/linux/atlassian/confluence/6/6.0.3/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.0.3 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.0.3/Makefile b/linux/atlassian/confluence/6/6.0.3/Makefile deleted file mode 100644 index 600150ad2..000000000 --- a/linux/atlassian/confluence/6/6.0.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.0.3 . - diff --git a/linux/atlassian/confluence/6/6.0.3/README.md b/linux/atlassian/confluence/6/6.0.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.0.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.0.4/Dockerfile b/linux/atlassian/confluence/6/6.0.4/Dockerfile deleted file mode 100644 index 67f277e57..000000000 --- a/linux/atlassian/confluence/6/6.0.4/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.0.4 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.0.4/Makefile b/linux/atlassian/confluence/6/6.0.4/Makefile deleted file mode 100644 index 295c8f338..000000000 --- a/linux/atlassian/confluence/6/6.0.4/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.0.4 . - diff --git a/linux/atlassian/confluence/6/6.0.4/README.md b/linux/atlassian/confluence/6/6.0.4/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.0.4/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.0.5/Dockerfile b/linux/atlassian/confluence/6/6.0.5/Dockerfile deleted file mode 100644 index 7402d12b4..000000000 --- a/linux/atlassian/confluence/6/6.0.5/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.0.5 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.0.5/Makefile b/linux/atlassian/confluence/6/6.0.5/Makefile deleted file mode 100644 index df010b00f..000000000 --- a/linux/atlassian/confluence/6/6.0.5/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.0.5 . - diff --git a/linux/atlassian/confluence/6/6.0.5/README.md b/linux/atlassian/confluence/6/6.0.5/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.0.5/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.0.6/Dockerfile b/linux/atlassian/confluence/6/6.0.6/Dockerfile deleted file mode 100644 index 54aab7128..000000000 --- a/linux/atlassian/confluence/6/6.0.6/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.0.6 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.0.6/Makefile b/linux/atlassian/confluence/6/6.0.6/Makefile deleted file mode 100644 index 415f855d5..000000000 --- a/linux/atlassian/confluence/6/6.0.6/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.0.6 . - diff --git a/linux/atlassian/confluence/6/6.0.6/README.md b/linux/atlassian/confluence/6/6.0.6/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.0.6/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.0.7/Dockerfile b/linux/atlassian/confluence/6/6.0.7/Dockerfile deleted file mode 100644 index 62a0c388c..000000000 --- a/linux/atlassian/confluence/6/6.0.7/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.0.7 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.0.7/Makefile b/linux/atlassian/confluence/6/6.0.7/Makefile deleted file mode 100644 index 319483387..000000000 --- a/linux/atlassian/confluence/6/6.0.7/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.0.7 . - diff --git a/linux/atlassian/confluence/6/6.0.7/README.md b/linux/atlassian/confluence/6/6.0.7/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.0.7/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.1.0/Dockerfile b/linux/atlassian/confluence/6/6.1.0/Dockerfile deleted file mode 100644 index 9e5c98eb9..000000000 --- a/linux/atlassian/confluence/6/6.1.0/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.1.0 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.1.0/Makefile b/linux/atlassian/confluence/6/6.1.0/Makefile deleted file mode 100644 index a85eda5df..000000000 --- a/linux/atlassian/confluence/6/6.1.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.1.0 . - diff --git a/linux/atlassian/confluence/6/6.1.0/README.md b/linux/atlassian/confluence/6/6.1.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.1.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.1.1/Dockerfile b/linux/atlassian/confluence/6/6.1.1/Dockerfile deleted file mode 100644 index 66b185a7e..000000000 --- a/linux/atlassian/confluence/6/6.1.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.1.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.1.1/Makefile b/linux/atlassian/confluence/6/6.1.1/Makefile deleted file mode 100644 index 79cbcdbfb..000000000 --- a/linux/atlassian/confluence/6/6.1.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.1.1 . - diff --git a/linux/atlassian/confluence/6/6.1.1/README.md b/linux/atlassian/confluence/6/6.1.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.1.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.1.2/Dockerfile b/linux/atlassian/confluence/6/6.1.2/Dockerfile deleted file mode 100644 index 1a8620f8d..000000000 --- a/linux/atlassian/confluence/6/6.1.2/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.1.2 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.1.2/Makefile b/linux/atlassian/confluence/6/6.1.2/Makefile deleted file mode 100644 index 384fecef4..000000000 --- a/linux/atlassian/confluence/6/6.1.2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.1.2 . - diff --git a/linux/atlassian/confluence/6/6.1.2/README.md b/linux/atlassian/confluence/6/6.1.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.1.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.1.3/Dockerfile b/linux/atlassian/confluence/6/6.1.3/Dockerfile deleted file mode 100644 index 8bde4a010..000000000 --- a/linux/atlassian/confluence/6/6.1.3/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.1.3 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.1.3/Makefile b/linux/atlassian/confluence/6/6.1.3/Makefile deleted file mode 100644 index 5123e62e9..000000000 --- a/linux/atlassian/confluence/6/6.1.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.1.3 . - diff --git a/linux/atlassian/confluence/6/6.1.3/README.md b/linux/atlassian/confluence/6/6.1.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.1.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.1.4/Dockerfile b/linux/atlassian/confluence/6/6.1.4/Dockerfile deleted file mode 100644 index 57b685395..000000000 --- a/linux/atlassian/confluence/6/6.1.4/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.1.4 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.1.4/Makefile b/linux/atlassian/confluence/6/6.1.4/Makefile deleted file mode 100644 index 06c417023..000000000 --- a/linux/atlassian/confluence/6/6.1.4/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.1.4 . - diff --git a/linux/atlassian/confluence/6/6.1.4/README.md b/linux/atlassian/confluence/6/6.1.4/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.1.4/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.10.0/Dockerfile b/linux/atlassian/confluence/6/6.10.0/Dockerfile deleted file mode 100644 index 4ad1fde3c..000000000 --- a/linux/atlassian/confluence/6/6.10.0/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.10.0 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.10.0/Makefile b/linux/atlassian/confluence/6/6.10.0/Makefile deleted file mode 100644 index 51889d9ce..000000000 --- a/linux/atlassian/confluence/6/6.10.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.10.0 . diff --git a/linux/atlassian/confluence/6/6.10.0/README.md b/linux/atlassian/confluence/6/6.10.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.10.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.10.1/Dockerfile b/linux/atlassian/confluence/6/6.10.1/Dockerfile deleted file mode 100644 index 03804167e..000000000 --- a/linux/atlassian/confluence/6/6.10.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.10.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.10.1/Makefile b/linux/atlassian/confluence/6/6.10.1/Makefile deleted file mode 100644 index 2075e3608..000000000 --- a/linux/atlassian/confluence/6/6.10.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.10.1 . diff --git a/linux/atlassian/confluence/6/6.10.1/README.md b/linux/atlassian/confluence/6/6.10.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.10.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.10.2/Dockerfile b/linux/atlassian/confluence/6/6.10.2/Dockerfile deleted file mode 100644 index b7a0eabd0..000000000 --- a/linux/atlassian/confluence/6/6.10.2/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.10.2 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.10.2/Makefile b/linux/atlassian/confluence/6/6.10.2/Makefile deleted file mode 100644 index 1e0cf78ce..000000000 --- a/linux/atlassian/confluence/6/6.10.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.10.2 . diff --git a/linux/atlassian/confluence/6/6.10.2/README.md b/linux/atlassian/confluence/6/6.10.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.10.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.10.3/Dockerfile b/linux/atlassian/confluence/6/6.10.3/Dockerfile deleted file mode 100644 index 0f996919e..000000000 --- a/linux/atlassian/confluence/6/6.10.3/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.10.3 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.10.3/Makefile b/linux/atlassian/confluence/6/6.10.3/Makefile deleted file mode 100644 index 3efab142b..000000000 --- a/linux/atlassian/confluence/6/6.10.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.10.3 . diff --git a/linux/atlassian/confluence/6/6.10.3/README.md b/linux/atlassian/confluence/6/6.10.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.10.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.11.0/Dockerfile b/linux/atlassian/confluence/6/6.11.0/Dockerfile deleted file mode 100644 index a398499dc..000000000 --- a/linux/atlassian/confluence/6/6.11.0/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.11.0 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.11.0/Makefile b/linux/atlassian/confluence/6/6.11.0/Makefile deleted file mode 100644 index 91ac02ec4..000000000 --- a/linux/atlassian/confluence/6/6.11.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.11.0 . diff --git a/linux/atlassian/confluence/6/6.11.0/README.md b/linux/atlassian/confluence/6/6.11.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.11.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.11.1/Dockerfile b/linux/atlassian/confluence/6/6.11.1/Dockerfile deleted file mode 100644 index b9f04c9fa..000000000 --- a/linux/atlassian/confluence/6/6.11.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.11.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.11.1/Makefile b/linux/atlassian/confluence/6/6.11.1/Makefile deleted file mode 100644 index 91b13f5a3..000000000 --- a/linux/atlassian/confluence/6/6.11.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.11.1 . diff --git a/linux/atlassian/confluence/6/6.11.1/README.md b/linux/atlassian/confluence/6/6.11.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.11.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.11.2/Dockerfile b/linux/atlassian/confluence/6/6.11.2/Dockerfile deleted file mode 100644 index 68b11e92e..000000000 --- a/linux/atlassian/confluence/6/6.11.2/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.11.2 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.11.2/Makefile b/linux/atlassian/confluence/6/6.11.2/Makefile deleted file mode 100644 index 33190fa54..000000000 --- a/linux/atlassian/confluence/6/6.11.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.11.2 . diff --git a/linux/atlassian/confluence/6/6.11.2/README.md b/linux/atlassian/confluence/6/6.11.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.11.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.12.0/Dockerfile b/linux/atlassian/confluence/6/6.12.0/Dockerfile deleted file mode 100644 index 1dc6fad00..000000000 --- a/linux/atlassian/confluence/6/6.12.0/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.12.0 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.12.0/Makefile b/linux/atlassian/confluence/6/6.12.0/Makefile deleted file mode 100644 index 8cda2e8c5..000000000 --- a/linux/atlassian/confluence/6/6.12.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.12.0 . diff --git a/linux/atlassian/confluence/6/6.12.0/README.md b/linux/atlassian/confluence/6/6.12.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.12.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.12.1/Dockerfile b/linux/atlassian/confluence/6/6.12.1/Dockerfile deleted file mode 100644 index 4bbf92616..000000000 --- a/linux/atlassian/confluence/6/6.12.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.12.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.12.1/Makefile b/linux/atlassian/confluence/6/6.12.1/Makefile deleted file mode 100644 index 0c8f696cd..000000000 --- a/linux/atlassian/confluence/6/6.12.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.12.1 . diff --git a/linux/atlassian/confluence/6/6.12.1/README.md b/linux/atlassian/confluence/6/6.12.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.12.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.12.2/Dockerfile b/linux/atlassian/confluence/6/6.12.2/Dockerfile deleted file mode 100644 index 5371f2910..000000000 --- a/linux/atlassian/confluence/6/6.12.2/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.12.2 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.12.2/Makefile b/linux/atlassian/confluence/6/6.12.2/Makefile deleted file mode 100644 index 816ec3bd7..000000000 --- a/linux/atlassian/confluence/6/6.12.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.12.2 . diff --git a/linux/atlassian/confluence/6/6.12.2/README.md b/linux/atlassian/confluence/6/6.12.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.12.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.12.3/Dockerfile b/linux/atlassian/confluence/6/6.12.3/Dockerfile deleted file mode 100644 index 754b5b423..000000000 --- a/linux/atlassian/confluence/6/6.12.3/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.12.3 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.12.3/Makefile b/linux/atlassian/confluence/6/6.12.3/Makefile deleted file mode 100644 index bcc05628a..000000000 --- a/linux/atlassian/confluence/6/6.12.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.12.3 . diff --git a/linux/atlassian/confluence/6/6.12.3/README.md b/linux/atlassian/confluence/6/6.12.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.12.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.12.4/Dockerfile b/linux/atlassian/confluence/6/6.12.4/Dockerfile deleted file mode 100644 index e19663666..000000000 --- a/linux/atlassian/confluence/6/6.12.4/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.12.4 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.12.4/Makefile b/linux/atlassian/confluence/6/6.12.4/Makefile deleted file mode 100644 index 48b1ff9b2..000000000 --- a/linux/atlassian/confluence/6/6.12.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.12.4 . diff --git a/linux/atlassian/confluence/6/6.12.4/README.md b/linux/atlassian/confluence/6/6.12.4/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.12.4/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.13.0/Dockerfile b/linux/atlassian/confluence/6/6.13.0/Dockerfile deleted file mode 100644 index ccb8e85b9..000000000 --- a/linux/atlassian/confluence/6/6.13.0/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.13.0 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.13.0/Makefile b/linux/atlassian/confluence/6/6.13.0/Makefile deleted file mode 100644 index bef0eb44c..000000000 --- a/linux/atlassian/confluence/6/6.13.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.13.0 . diff --git a/linux/atlassian/confluence/6/6.13.0/README.md b/linux/atlassian/confluence/6/6.13.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.13.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.13.1/Dockerfile b/linux/atlassian/confluence/6/6.13.1/Dockerfile deleted file mode 100644 index d443befb1..000000000 --- a/linux/atlassian/confluence/6/6.13.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.13.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.13.1/Makefile b/linux/atlassian/confluence/6/6.13.1/Makefile deleted file mode 100644 index 59ba9a277..000000000 --- a/linux/atlassian/confluence/6/6.13.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.13.1 . diff --git a/linux/atlassian/confluence/6/6.13.1/README.md b/linux/atlassian/confluence/6/6.13.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.13.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.13.10/Dockerfile b/linux/atlassian/confluence/6/6.13.10/Dockerfile deleted file mode 100644 index 819172b1e..000000000 --- a/linux/atlassian/confluence/6/6.13.10/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.13.10 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.13.10/Makefile b/linux/atlassian/confluence/6/6.13.10/Makefile deleted file mode 100644 index ae06f9246..000000000 --- a/linux/atlassian/confluence/6/6.13.10/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.13.10 . diff --git a/linux/atlassian/confluence/6/6.13.10/README.md b/linux/atlassian/confluence/6/6.13.10/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.13.10/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.13.11/Dockerfile b/linux/atlassian/confluence/6/6.13.11/Dockerfile deleted file mode 100644 index 9f2dec9ed..000000000 --- a/linux/atlassian/confluence/6/6.13.11/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.13.11 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.13.11/Makefile b/linux/atlassian/confluence/6/6.13.11/Makefile deleted file mode 100644 index 01b6b55e6..000000000 --- a/linux/atlassian/confluence/6/6.13.11/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.13.11 . - docker push epicmorg/confluence:6.13.11 diff --git a/linux/atlassian/confluence/6/6.13.11/README.md b/linux/atlassian/confluence/6/6.13.11/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.13.11/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.13.2/Dockerfile b/linux/atlassian/confluence/6/6.13.2/Dockerfile deleted file mode 100644 index d70d32f7e..000000000 --- a/linux/atlassian/confluence/6/6.13.2/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.13.2 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.13.2/Makefile b/linux/atlassian/confluence/6/6.13.2/Makefile deleted file mode 100644 index 0d0a349b3..000000000 --- a/linux/atlassian/confluence/6/6.13.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.13.2 . diff --git a/linux/atlassian/confluence/6/6.13.2/README.md b/linux/atlassian/confluence/6/6.13.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.13.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.13.3/Dockerfile b/linux/atlassian/confluence/6/6.13.3/Dockerfile deleted file mode 100644 index 9b3339a01..000000000 --- a/linux/atlassian/confluence/6/6.13.3/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.13.3 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.13.3/Makefile b/linux/atlassian/confluence/6/6.13.3/Makefile deleted file mode 100644 index b5dd0c1af..000000000 --- a/linux/atlassian/confluence/6/6.13.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.13.3 . diff --git a/linux/atlassian/confluence/6/6.13.3/README.md b/linux/atlassian/confluence/6/6.13.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.13.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.13.4/Dockerfile b/linux/atlassian/confluence/6/6.13.4/Dockerfile deleted file mode 100644 index 754b6e94f..000000000 --- a/linux/atlassian/confluence/6/6.13.4/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.13.4 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.13.4/Makefile b/linux/atlassian/confluence/6/6.13.4/Makefile deleted file mode 100644 index 151d74550..000000000 --- a/linux/atlassian/confluence/6/6.13.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.13.4 . diff --git a/linux/atlassian/confluence/6/6.13.4/README.md b/linux/atlassian/confluence/6/6.13.4/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.13.4/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.13.5/Dockerfile b/linux/atlassian/confluence/6/6.13.5/Dockerfile deleted file mode 100644 index a3a26f6c1..000000000 --- a/linux/atlassian/confluence/6/6.13.5/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.13.5 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.13.5/Makefile b/linux/atlassian/confluence/6/6.13.5/Makefile deleted file mode 100644 index 51b8004b9..000000000 --- a/linux/atlassian/confluence/6/6.13.5/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.13.5 . diff --git a/linux/atlassian/confluence/6/6.13.5/README.md b/linux/atlassian/confluence/6/6.13.5/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.13.5/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.13.6/Dockerfile b/linux/atlassian/confluence/6/6.13.6/Dockerfile deleted file mode 100644 index e7ddfccfd..000000000 --- a/linux/atlassian/confluence/6/6.13.6/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.13.6 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.13.6/Makefile b/linux/atlassian/confluence/6/6.13.6/Makefile deleted file mode 100644 index f97a67aac..000000000 --- a/linux/atlassian/confluence/6/6.13.6/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.13.6 . diff --git a/linux/atlassian/confluence/6/6.13.6/README.md b/linux/atlassian/confluence/6/6.13.6/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.13.6/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.13.7/Dockerfile b/linux/atlassian/confluence/6/6.13.7/Dockerfile deleted file mode 100644 index ec43a52b7..000000000 --- a/linux/atlassian/confluence/6/6.13.7/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.13.7 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.13.7/Makefile b/linux/atlassian/confluence/6/6.13.7/Makefile deleted file mode 100644 index 67ea1401b..000000000 --- a/linux/atlassian/confluence/6/6.13.7/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.13.7 . diff --git a/linux/atlassian/confluence/6/6.13.7/README.md b/linux/atlassian/confluence/6/6.13.7/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.13.7/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.13.8/Dockerfile b/linux/atlassian/confluence/6/6.13.8/Dockerfile deleted file mode 100644 index f31478c3f..000000000 --- a/linux/atlassian/confluence/6/6.13.8/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.13.8 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.13.8/Makefile b/linux/atlassian/confluence/6/6.13.8/Makefile deleted file mode 100644 index 40f704f85..000000000 --- a/linux/atlassian/confluence/6/6.13.8/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.13.8 . diff --git a/linux/atlassian/confluence/6/6.13.8/README.md b/linux/atlassian/confluence/6/6.13.8/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.13.8/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.13.9/Dockerfile b/linux/atlassian/confluence/6/6.13.9/Dockerfile deleted file mode 100644 index 23d27cfbd..000000000 --- a/linux/atlassian/confluence/6/6.13.9/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.13.9 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.13.9/Makefile b/linux/atlassian/confluence/6/6.13.9/Makefile deleted file mode 100644 index 123908ce1..000000000 --- a/linux/atlassian/confluence/6/6.13.9/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.13.9 . diff --git a/linux/atlassian/confluence/6/6.13.9/README.md b/linux/atlassian/confluence/6/6.13.9/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.13.9/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.14.0/Dockerfile b/linux/atlassian/confluence/6/6.14.0/Dockerfile deleted file mode 100644 index 75528b59f..000000000 --- a/linux/atlassian/confluence/6/6.14.0/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.14.0 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.14.0/Makefile b/linux/atlassian/confluence/6/6.14.0/Makefile deleted file mode 100644 index a108c8aac..000000000 --- a/linux/atlassian/confluence/6/6.14.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.14.0 . diff --git a/linux/atlassian/confluence/6/6.14.0/README.md b/linux/atlassian/confluence/6/6.14.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.14.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.14.1/Dockerfile b/linux/atlassian/confluence/6/6.14.1/Dockerfile deleted file mode 100644 index 1afce19ac..000000000 --- a/linux/atlassian/confluence/6/6.14.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.14.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.14.1/Makefile b/linux/atlassian/confluence/6/6.14.1/Makefile deleted file mode 100644 index 10c887145..000000000 --- a/linux/atlassian/confluence/6/6.14.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.14.1 . diff --git a/linux/atlassian/confluence/6/6.14.1/README.md b/linux/atlassian/confluence/6/6.14.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.14.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.14.2/Dockerfile b/linux/atlassian/confluence/6/6.14.2/Dockerfile deleted file mode 100644 index 9c09f9aa0..000000000 --- a/linux/atlassian/confluence/6/6.14.2/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.14.2 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.14.2/Makefile b/linux/atlassian/confluence/6/6.14.2/Makefile deleted file mode 100644 index 20d0be562..000000000 --- a/linux/atlassian/confluence/6/6.14.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.14.2 . diff --git a/linux/atlassian/confluence/6/6.14.2/README.md b/linux/atlassian/confluence/6/6.14.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.14.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.14.3/Dockerfile b/linux/atlassian/confluence/6/6.14.3/Dockerfile deleted file mode 100644 index 09045771f..000000000 --- a/linux/atlassian/confluence/6/6.14.3/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.14.3 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.14.3/Makefile b/linux/atlassian/confluence/6/6.14.3/Makefile deleted file mode 100644 index 64d461d63..000000000 --- a/linux/atlassian/confluence/6/6.14.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.14.3 . diff --git a/linux/atlassian/confluence/6/6.14.3/README.md b/linux/atlassian/confluence/6/6.14.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.14.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.15.1/Dockerfile b/linux/atlassian/confluence/6/6.15.1/Dockerfile deleted file mode 100644 index b4760d22a..000000000 --- a/linux/atlassian/confluence/6/6.15.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.15.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.15.1/Makefile b/linux/atlassian/confluence/6/6.15.1/Makefile deleted file mode 100644 index 8562af6a9..000000000 --- a/linux/atlassian/confluence/6/6.15.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.15.1 . diff --git a/linux/atlassian/confluence/6/6.15.1/README.md b/linux/atlassian/confluence/6/6.15.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.15.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.15.10/Dockerfile b/linux/atlassian/confluence/6/6.15.10/Dockerfile deleted file mode 100644 index 390873ab3..000000000 --- a/linux/atlassian/confluence/6/6.15.10/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.15.10 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.15.10/Makefile b/linux/atlassian/confluence/6/6.15.10/Makefile deleted file mode 100644 index ac511814c..000000000 --- a/linux/atlassian/confluence/6/6.15.10/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.15.10 . diff --git a/linux/atlassian/confluence/6/6.15.10/README.md b/linux/atlassian/confluence/6/6.15.10/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.15.10/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.15.2/Dockerfile b/linux/atlassian/confluence/6/6.15.2/Dockerfile deleted file mode 100644 index 8f3f731e4..000000000 --- a/linux/atlassian/confluence/6/6.15.2/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.15.2 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.15.2/Makefile b/linux/atlassian/confluence/6/6.15.2/Makefile deleted file mode 100644 index 49f7f4b47..000000000 --- a/linux/atlassian/confluence/6/6.15.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.15.2 . diff --git a/linux/atlassian/confluence/6/6.15.2/README.md b/linux/atlassian/confluence/6/6.15.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.15.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.15.4/Dockerfile b/linux/atlassian/confluence/6/6.15.4/Dockerfile deleted file mode 100644 index bd22b9524..000000000 --- a/linux/atlassian/confluence/6/6.15.4/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.15.4 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.15.4/Makefile b/linux/atlassian/confluence/6/6.15.4/Makefile deleted file mode 100644 index b578eca08..000000000 --- a/linux/atlassian/confluence/6/6.15.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.15.4 . diff --git a/linux/atlassian/confluence/6/6.15.4/README.md b/linux/atlassian/confluence/6/6.15.4/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.15.4/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.15.6/Dockerfile b/linux/atlassian/confluence/6/6.15.6/Dockerfile deleted file mode 100644 index 7ded10ca3..000000000 --- a/linux/atlassian/confluence/6/6.15.6/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.15.6 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.15.6/Makefile b/linux/atlassian/confluence/6/6.15.6/Makefile deleted file mode 100644 index 960c9cff3..000000000 --- a/linux/atlassian/confluence/6/6.15.6/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.15.6 . diff --git a/linux/atlassian/confluence/6/6.15.6/README.md b/linux/atlassian/confluence/6/6.15.6/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.15.6/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.15.7/Dockerfile b/linux/atlassian/confluence/6/6.15.7/Dockerfile deleted file mode 100644 index fd475818d..000000000 --- a/linux/atlassian/confluence/6/6.15.7/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.15.7 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.15.7/Makefile b/linux/atlassian/confluence/6/6.15.7/Makefile deleted file mode 100644 index c0d45c8e4..000000000 --- a/linux/atlassian/confluence/6/6.15.7/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.15.7 . diff --git a/linux/atlassian/confluence/6/6.15.7/README.md b/linux/atlassian/confluence/6/6.15.7/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.15.7/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.15.8/Dockerfile b/linux/atlassian/confluence/6/6.15.8/Dockerfile deleted file mode 100644 index 88eb7769b..000000000 --- a/linux/atlassian/confluence/6/6.15.8/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.15.8 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.15.8/Makefile b/linux/atlassian/confluence/6/6.15.8/Makefile deleted file mode 100644 index daca62370..000000000 --- a/linux/atlassian/confluence/6/6.15.8/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.15.8 . diff --git a/linux/atlassian/confluence/6/6.15.8/README.md b/linux/atlassian/confluence/6/6.15.8/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.15.8/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.15.9/Dockerfile b/linux/atlassian/confluence/6/6.15.9/Dockerfile deleted file mode 100644 index d3ce10616..000000000 --- a/linux/atlassian/confluence/6/6.15.9/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.15.9 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.15.9/Makefile b/linux/atlassian/confluence/6/6.15.9/Makefile deleted file mode 100644 index 1383a8baf..000000000 --- a/linux/atlassian/confluence/6/6.15.9/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.15.9 . diff --git a/linux/atlassian/confluence/6/6.15.9/README.md b/linux/atlassian/confluence/6/6.15.9/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.15.9/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.2.0/Dockerfile b/linux/atlassian/confluence/6/6.2.0/Dockerfile deleted file mode 100644 index 2918977a7..000000000 --- a/linux/atlassian/confluence/6/6.2.0/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.2.0 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.2.0/Makefile b/linux/atlassian/confluence/6/6.2.0/Makefile deleted file mode 100644 index 64a2b71a2..000000000 --- a/linux/atlassian/confluence/6/6.2.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.2.0 . - diff --git a/linux/atlassian/confluence/6/6.2.0/README.md b/linux/atlassian/confluence/6/6.2.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.2.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.2.1/Dockerfile b/linux/atlassian/confluence/6/6.2.1/Dockerfile deleted file mode 100644 index a92c188e7..000000000 --- a/linux/atlassian/confluence/6/6.2.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.2.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.2.1/Makefile b/linux/atlassian/confluence/6/6.2.1/Makefile deleted file mode 100644 index 579cfc2a0..000000000 --- a/linux/atlassian/confluence/6/6.2.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.2.1 . - diff --git a/linux/atlassian/confluence/6/6.2.1/README.md b/linux/atlassian/confluence/6/6.2.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.2.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.2.3/Dockerfile b/linux/atlassian/confluence/6/6.2.3/Dockerfile deleted file mode 100644 index 6cb8e82b0..000000000 --- a/linux/atlassian/confluence/6/6.2.3/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.2.3 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.2.3/Makefile b/linux/atlassian/confluence/6/6.2.3/Makefile deleted file mode 100644 index 4e065a590..000000000 --- a/linux/atlassian/confluence/6/6.2.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.2.3 . - diff --git a/linux/atlassian/confluence/6/6.2.3/README.md b/linux/atlassian/confluence/6/6.2.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.2.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.2.4/Dockerfile b/linux/atlassian/confluence/6/6.2.4/Dockerfile deleted file mode 100644 index 5a6774b8b..000000000 --- a/linux/atlassian/confluence/6/6.2.4/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.2.4 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.2.4/Makefile b/linux/atlassian/confluence/6/6.2.4/Makefile deleted file mode 100644 index da230e169..000000000 --- a/linux/atlassian/confluence/6/6.2.4/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.2.4 . - diff --git a/linux/atlassian/confluence/6/6.2.4/README.md b/linux/atlassian/confluence/6/6.2.4/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.2.4/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.3.1/Dockerfile b/linux/atlassian/confluence/6/6.3.1/Dockerfile deleted file mode 100644 index 5427ff517..000000000 --- a/linux/atlassian/confluence/6/6.3.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.3.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.3.1/Makefile b/linux/atlassian/confluence/6/6.3.1/Makefile deleted file mode 100644 index 5a829cec6..000000000 --- a/linux/atlassian/confluence/6/6.3.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.3.1 . - diff --git a/linux/atlassian/confluence/6/6.3.1/README.md b/linux/atlassian/confluence/6/6.3.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.3.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.3.2/Dockerfile b/linux/atlassian/confluence/6/6.3.2/Dockerfile deleted file mode 100644 index 966862883..000000000 --- a/linux/atlassian/confluence/6/6.3.2/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.3.2 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.3.2/Makefile b/linux/atlassian/confluence/6/6.3.2/Makefile deleted file mode 100644 index 87cb02a13..000000000 --- a/linux/atlassian/confluence/6/6.3.2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.3.2 . - diff --git a/linux/atlassian/confluence/6/6.3.2/README.md b/linux/atlassian/confluence/6/6.3.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.3.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.3.3/Dockerfile b/linux/atlassian/confluence/6/6.3.3/Dockerfile deleted file mode 100644 index 0538b7412..000000000 --- a/linux/atlassian/confluence/6/6.3.3/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.3.3 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.3.3/Makefile b/linux/atlassian/confluence/6/6.3.3/Makefile deleted file mode 100644 index 3fbdcf9e3..000000000 --- a/linux/atlassian/confluence/6/6.3.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.3.3 . - diff --git a/linux/atlassian/confluence/6/6.3.3/README.md b/linux/atlassian/confluence/6/6.3.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.3.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.3.4/Dockerfile b/linux/atlassian/confluence/6/6.3.4/Dockerfile deleted file mode 100644 index c5943a421..000000000 --- a/linux/atlassian/confluence/6/6.3.4/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.3.4 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.3.4/Makefile b/linux/atlassian/confluence/6/6.3.4/Makefile deleted file mode 100644 index 1505da964..000000000 --- a/linux/atlassian/confluence/6/6.3.4/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.3.4 . - diff --git a/linux/atlassian/confluence/6/6.3.4/README.md b/linux/atlassian/confluence/6/6.3.4/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.3.4/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.4.0/Dockerfile b/linux/atlassian/confluence/6/6.4.0/Dockerfile deleted file mode 100644 index e54266583..000000000 --- a/linux/atlassian/confluence/6/6.4.0/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.4.0 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.4.0/Makefile b/linux/atlassian/confluence/6/6.4.0/Makefile deleted file mode 100644 index dd3a24008..000000000 --- a/linux/atlassian/confluence/6/6.4.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.4.0 . - diff --git a/linux/atlassian/confluence/6/6.4.0/README.md b/linux/atlassian/confluence/6/6.4.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.4.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.4.1/Dockerfile b/linux/atlassian/confluence/6/6.4.1/Dockerfile deleted file mode 100644 index 62c64bbde..000000000 --- a/linux/atlassian/confluence/6/6.4.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.4.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.4.1/Makefile b/linux/atlassian/confluence/6/6.4.1/Makefile deleted file mode 100644 index 7379fec29..000000000 --- a/linux/atlassian/confluence/6/6.4.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.4.1 . - diff --git a/linux/atlassian/confluence/6/6.4.1/README.md b/linux/atlassian/confluence/6/6.4.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.4.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.4.2/Dockerfile b/linux/atlassian/confluence/6/6.4.2/Dockerfile deleted file mode 100644 index d092f4d19..000000000 --- a/linux/atlassian/confluence/6/6.4.2/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.4.2 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.4.2/Makefile b/linux/atlassian/confluence/6/6.4.2/Makefile deleted file mode 100644 index 34484b6ce..000000000 --- a/linux/atlassian/confluence/6/6.4.2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.4.2 . - diff --git a/linux/atlassian/confluence/6/6.4.2/README.md b/linux/atlassian/confluence/6/6.4.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.4.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.4.3/Dockerfile b/linux/atlassian/confluence/6/6.4.3/Dockerfile deleted file mode 100644 index 6281998aa..000000000 --- a/linux/atlassian/confluence/6/6.4.3/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.4.3 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.4.3/Makefile b/linux/atlassian/confluence/6/6.4.3/Makefile deleted file mode 100644 index 888a64d97..000000000 --- a/linux/atlassian/confluence/6/6.4.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.4.3 . - diff --git a/linux/atlassian/confluence/6/6.4.3/README.md b/linux/atlassian/confluence/6/6.4.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.4.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.5.0/Dockerfile b/linux/atlassian/confluence/6/6.5.0/Dockerfile deleted file mode 100644 index e674e1e53..000000000 --- a/linux/atlassian/confluence/6/6.5.0/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.5.0 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.5.0/Makefile b/linux/atlassian/confluence/6/6.5.0/Makefile deleted file mode 100644 index a457b27b6..000000000 --- a/linux/atlassian/confluence/6/6.5.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.5.0 . - diff --git a/linux/atlassian/confluence/6/6.5.0/README.md b/linux/atlassian/confluence/6/6.5.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.5.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.5.1/Dockerfile b/linux/atlassian/confluence/6/6.5.1/Dockerfile deleted file mode 100644 index fb30c69be..000000000 --- a/linux/atlassian/confluence/6/6.5.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.5.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.5.1/Makefile b/linux/atlassian/confluence/6/6.5.1/Makefile deleted file mode 100644 index 10590eca2..000000000 --- a/linux/atlassian/confluence/6/6.5.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.5.1 . - diff --git a/linux/atlassian/confluence/6/6.5.1/README.md b/linux/atlassian/confluence/6/6.5.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.5.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.5.2/Dockerfile b/linux/atlassian/confluence/6/6.5.2/Dockerfile deleted file mode 100644 index 6a5f7cc0f..000000000 --- a/linux/atlassian/confluence/6/6.5.2/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.5.2 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.5.2/Makefile b/linux/atlassian/confluence/6/6.5.2/Makefile deleted file mode 100644 index d9dde7a8f..000000000 --- a/linux/atlassian/confluence/6/6.5.2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.5.2 . - diff --git a/linux/atlassian/confluence/6/6.5.2/README.md b/linux/atlassian/confluence/6/6.5.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.5.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.5.3/Dockerfile b/linux/atlassian/confluence/6/6.5.3/Dockerfile deleted file mode 100644 index f81e707cb..000000000 --- a/linux/atlassian/confluence/6/6.5.3/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.5.3 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.5.3/Makefile b/linux/atlassian/confluence/6/6.5.3/Makefile deleted file mode 100644 index 1e1b17a1a..000000000 --- a/linux/atlassian/confluence/6/6.5.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.5.3 . - diff --git a/linux/atlassian/confluence/6/6.5.3/README.md b/linux/atlassian/confluence/6/6.5.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.5.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.0/Dockerfile b/linux/atlassian/confluence/6/6.6.0/Dockerfile deleted file mode 100644 index b0850304f..000000000 --- a/linux/atlassian/confluence/6/6.6.0/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.0 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.0/Makefile b/linux/atlassian/confluence/6/6.6.0/Makefile deleted file mode 100644 index 1876076f1..000000000 --- a/linux/atlassian/confluence/6/6.6.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.0 . - diff --git a/linux/atlassian/confluence/6/6.6.0/README.md b/linux/atlassian/confluence/6/6.6.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.1/Dockerfile b/linux/atlassian/confluence/6/6.6.1/Dockerfile deleted file mode 100644 index 1608677f8..000000000 --- a/linux/atlassian/confluence/6/6.6.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.1/Makefile b/linux/atlassian/confluence/6/6.6.1/Makefile deleted file mode 100644 index 9127a3ae2..000000000 --- a/linux/atlassian/confluence/6/6.6.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.1 . - diff --git a/linux/atlassian/confluence/6/6.6.1/README.md b/linux/atlassian/confluence/6/6.6.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.10/Dockerfile b/linux/atlassian/confluence/6/6.6.10/Dockerfile deleted file mode 100644 index eb33e2439..000000000 --- a/linux/atlassian/confluence/6/6.6.10/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.10 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.10/Makefile b/linux/atlassian/confluence/6/6.6.10/Makefile deleted file mode 100644 index e322ce139..000000000 --- a/linux/atlassian/confluence/6/6.6.10/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.10 . - diff --git a/linux/atlassian/confluence/6/6.6.10/README.md b/linux/atlassian/confluence/6/6.6.10/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.10/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.11/Dockerfile b/linux/atlassian/confluence/6/6.6.11/Dockerfile deleted file mode 100644 index 65d9e9233..000000000 --- a/linux/atlassian/confluence/6/6.6.11/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.11 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.11/Makefile b/linux/atlassian/confluence/6/6.6.11/Makefile deleted file mode 100644 index 42ff0164d..000000000 --- a/linux/atlassian/confluence/6/6.6.11/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.11 . - diff --git a/linux/atlassian/confluence/6/6.6.11/README.md b/linux/atlassian/confluence/6/6.6.11/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.11/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.12/Dockerfile b/linux/atlassian/confluence/6/6.6.12/Dockerfile deleted file mode 100644 index 17da76ab4..000000000 --- a/linux/atlassian/confluence/6/6.6.12/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.12 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.12/Makefile b/linux/atlassian/confluence/6/6.6.12/Makefile deleted file mode 100644 index 29ec4ae8d..000000000 --- a/linux/atlassian/confluence/6/6.6.12/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.12 . - diff --git a/linux/atlassian/confluence/6/6.6.12/README.md b/linux/atlassian/confluence/6/6.6.12/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.12/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.13/Dockerfile b/linux/atlassian/confluence/6/6.6.13/Dockerfile deleted file mode 100644 index cd6f7d0e5..000000000 --- a/linux/atlassian/confluence/6/6.6.13/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.13 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.13/Makefile b/linux/atlassian/confluence/6/6.6.13/Makefile deleted file mode 100644 index 4a5e342e0..000000000 --- a/linux/atlassian/confluence/6/6.6.13/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.13 . - diff --git a/linux/atlassian/confluence/6/6.6.13/README.md b/linux/atlassian/confluence/6/6.6.13/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.13/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.14/Dockerfile b/linux/atlassian/confluence/6/6.6.14/Dockerfile deleted file mode 100644 index 88534111b..000000000 --- a/linux/atlassian/confluence/6/6.6.14/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.14 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.14/Makefile b/linux/atlassian/confluence/6/6.6.14/Makefile deleted file mode 100644 index c07283d88..000000000 --- a/linux/atlassian/confluence/6/6.6.14/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.14 . - diff --git a/linux/atlassian/confluence/6/6.6.14/README.md b/linux/atlassian/confluence/6/6.6.14/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.14/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.15/Dockerfile b/linux/atlassian/confluence/6/6.6.15/Dockerfile deleted file mode 100644 index 65fd33268..000000000 --- a/linux/atlassian/confluence/6/6.6.15/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.15 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.15/Makefile b/linux/atlassian/confluence/6/6.6.15/Makefile deleted file mode 100644 index c16e574e6..000000000 --- a/linux/atlassian/confluence/6/6.6.15/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.15 . - diff --git a/linux/atlassian/confluence/6/6.6.15/README.md b/linux/atlassian/confluence/6/6.6.15/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.15/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.17/Dockerfile b/linux/atlassian/confluence/6/6.6.17/Dockerfile deleted file mode 100644 index 554b5841a..000000000 --- a/linux/atlassian/confluence/6/6.6.17/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.17 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.17/Makefile b/linux/atlassian/confluence/6/6.6.17/Makefile deleted file mode 100644 index 356dd5709..000000000 --- a/linux/atlassian/confluence/6/6.6.17/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.17 . - diff --git a/linux/atlassian/confluence/6/6.6.17/README.md b/linux/atlassian/confluence/6/6.6.17/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.17/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.2/Dockerfile b/linux/atlassian/confluence/6/6.6.2/Dockerfile deleted file mode 100644 index e0bc6ea1b..000000000 --- a/linux/atlassian/confluence/6/6.6.2/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.2 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.2/Makefile b/linux/atlassian/confluence/6/6.6.2/Makefile deleted file mode 100644 index d66002167..000000000 --- a/linux/atlassian/confluence/6/6.6.2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.2 . - diff --git a/linux/atlassian/confluence/6/6.6.2/README.md b/linux/atlassian/confluence/6/6.6.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.3/Dockerfile b/linux/atlassian/confluence/6/6.6.3/Dockerfile deleted file mode 100644 index a19bd9413..000000000 --- a/linux/atlassian/confluence/6/6.6.3/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.3 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.3/Makefile b/linux/atlassian/confluence/6/6.6.3/Makefile deleted file mode 100644 index ecb5e0dd8..000000000 --- a/linux/atlassian/confluence/6/6.6.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.3 . - diff --git a/linux/atlassian/confluence/6/6.6.3/README.md b/linux/atlassian/confluence/6/6.6.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.4/Dockerfile b/linux/atlassian/confluence/6/6.6.4/Dockerfile deleted file mode 100644 index 9c8864c32..000000000 --- a/linux/atlassian/confluence/6/6.6.4/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.4 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.4/Makefile b/linux/atlassian/confluence/6/6.6.4/Makefile deleted file mode 100644 index 47c8828ca..000000000 --- a/linux/atlassian/confluence/6/6.6.4/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.4 . - diff --git a/linux/atlassian/confluence/6/6.6.4/README.md b/linux/atlassian/confluence/6/6.6.4/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.4/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.5/Dockerfile b/linux/atlassian/confluence/6/6.6.5/Dockerfile deleted file mode 100644 index eec344827..000000000 --- a/linux/atlassian/confluence/6/6.6.5/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.5 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.5/Makefile b/linux/atlassian/confluence/6/6.6.5/Makefile deleted file mode 100644 index 9bdd33e42..000000000 --- a/linux/atlassian/confluence/6/6.6.5/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.5 . - diff --git a/linux/atlassian/confluence/6/6.6.5/README.md b/linux/atlassian/confluence/6/6.6.5/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.5/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.6/Dockerfile b/linux/atlassian/confluence/6/6.6.6/Dockerfile deleted file mode 100644 index cadb2a898..000000000 --- a/linux/atlassian/confluence/6/6.6.6/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.6 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.6/Makefile b/linux/atlassian/confluence/6/6.6.6/Makefile deleted file mode 100644 index 8c37edc2f..000000000 --- a/linux/atlassian/confluence/6/6.6.6/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.6 . - diff --git a/linux/atlassian/confluence/6/6.6.6/README.md b/linux/atlassian/confluence/6/6.6.6/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.6/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.7/Dockerfile b/linux/atlassian/confluence/6/6.6.7/Dockerfile deleted file mode 100644 index 2650f20ab..000000000 --- a/linux/atlassian/confluence/6/6.6.7/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.7 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.7/Makefile b/linux/atlassian/confluence/6/6.6.7/Makefile deleted file mode 100644 index d091db002..000000000 --- a/linux/atlassian/confluence/6/6.6.7/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.7 . - diff --git a/linux/atlassian/confluence/6/6.6.7/README.md b/linux/atlassian/confluence/6/6.6.7/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.7/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.8/Dockerfile b/linux/atlassian/confluence/6/6.6.8/Dockerfile deleted file mode 100644 index 408735cf7..000000000 --- a/linux/atlassian/confluence/6/6.6.8/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.8 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.8/Makefile b/linux/atlassian/confluence/6/6.6.8/Makefile deleted file mode 100644 index d3628320b..000000000 --- a/linux/atlassian/confluence/6/6.6.8/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.8 . - diff --git a/linux/atlassian/confluence/6/6.6.8/README.md b/linux/atlassian/confluence/6/6.6.8/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.8/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.6.9/Dockerfile b/linux/atlassian/confluence/6/6.6.9/Dockerfile deleted file mode 100644 index 5e3984215..000000000 --- a/linux/atlassian/confluence/6/6.6.9/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.6.9 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.6.9/Makefile b/linux/atlassian/confluence/6/6.6.9/Makefile deleted file mode 100644 index 6206d1f00..000000000 --- a/linux/atlassian/confluence/6/6.6.9/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.9 . - diff --git a/linux/atlassian/confluence/6/6.6.9/README.md b/linux/atlassian/confluence/6/6.6.9/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.6.9/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.7.0/Dockerfile b/linux/atlassian/confluence/6/6.7.0/Dockerfile deleted file mode 100644 index 9dc91e223..000000000 --- a/linux/atlassian/confluence/6/6.7.0/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.7.0 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.7.0/Makefile b/linux/atlassian/confluence/6/6.7.0/Makefile deleted file mode 100644 index 23bfba3d1..000000000 --- a/linux/atlassian/confluence/6/6.7.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.7.0 . - diff --git a/linux/atlassian/confluence/6/6.7.0/README.md b/linux/atlassian/confluence/6/6.7.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.7.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.7.1/Dockerfile b/linux/atlassian/confluence/6/6.7.1/Dockerfile deleted file mode 100644 index d868cca9e..000000000 --- a/linux/atlassian/confluence/6/6.7.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.7.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.7.1/Makefile b/linux/atlassian/confluence/6/6.7.1/Makefile deleted file mode 100644 index 0375c7354..000000000 --- a/linux/atlassian/confluence/6/6.7.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.7.1 . - diff --git a/linux/atlassian/confluence/6/6.7.1/README.md b/linux/atlassian/confluence/6/6.7.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.7.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.7.2/Dockerfile b/linux/atlassian/confluence/6/6.7.2/Dockerfile deleted file mode 100644 index bde658aa8..000000000 --- a/linux/atlassian/confluence/6/6.7.2/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.7.2 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.7.2/Makefile b/linux/atlassian/confluence/6/6.7.2/Makefile deleted file mode 100644 index 4f78c9478..000000000 --- a/linux/atlassian/confluence/6/6.7.2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.7.2 . - diff --git a/linux/atlassian/confluence/6/6.7.2/README.md b/linux/atlassian/confluence/6/6.7.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.7.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.7.3/Dockerfile b/linux/atlassian/confluence/6/6.7.3/Dockerfile deleted file mode 100644 index cf138aaf8..000000000 --- a/linux/atlassian/confluence/6/6.7.3/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.7.3 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.7.3/Makefile b/linux/atlassian/confluence/6/6.7.3/Makefile deleted file mode 100644 index f53fd1b3e..000000000 --- a/linux/atlassian/confluence/6/6.7.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.7.3 . - diff --git a/linux/atlassian/confluence/6/6.7.3/README.md b/linux/atlassian/confluence/6/6.7.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.7.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.8.0/Dockerfile b/linux/atlassian/confluence/6/6.8.0/Dockerfile deleted file mode 100644 index 6b0568acc..000000000 --- a/linux/atlassian/confluence/6/6.8.0/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.8.0 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.8.0/Makefile b/linux/atlassian/confluence/6/6.8.0/Makefile deleted file mode 100644 index 8914687ef..000000000 --- a/linux/atlassian/confluence/6/6.8.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.8.0 . - diff --git a/linux/atlassian/confluence/6/6.8.0/README.md b/linux/atlassian/confluence/6/6.8.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.8.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.8.1/Dockerfile b/linux/atlassian/confluence/6/6.8.1/Dockerfile deleted file mode 100644 index 9473a5c21..000000000 --- a/linux/atlassian/confluence/6/6.8.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.8.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.8.1/Makefile b/linux/atlassian/confluence/6/6.8.1/Makefile deleted file mode 100644 index 18152fd63..000000000 --- a/linux/atlassian/confluence/6/6.8.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.8.1 . - diff --git a/linux/atlassian/confluence/6/6.8.1/README.md b/linux/atlassian/confluence/6/6.8.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.8.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.8.2/Dockerfile b/linux/atlassian/confluence/6/6.8.2/Dockerfile deleted file mode 100644 index daa28275d..000000000 --- a/linux/atlassian/confluence/6/6.8.2/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.8.2 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.8.2/Makefile b/linux/atlassian/confluence/6/6.8.2/Makefile deleted file mode 100644 index 644a64e9a..000000000 --- a/linux/atlassian/confluence/6/6.8.2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.8.2 . - diff --git a/linux/atlassian/confluence/6/6.8.2/README.md b/linux/atlassian/confluence/6/6.8.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.8.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.8.3/Dockerfile b/linux/atlassian/confluence/6/6.8.3/Dockerfile deleted file mode 100644 index 23aa96760..000000000 --- a/linux/atlassian/confluence/6/6.8.3/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.8.3 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.8.3/Makefile b/linux/atlassian/confluence/6/6.8.3/Makefile deleted file mode 100644 index fc299aceb..000000000 --- a/linux/atlassian/confluence/6/6.8.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.8.3 . - diff --git a/linux/atlassian/confluence/6/6.8.3/README.md b/linux/atlassian/confluence/6/6.8.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.8.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.8.5/Dockerfile b/linux/atlassian/confluence/6/6.8.5/Dockerfile deleted file mode 100644 index 5d4878265..000000000 --- a/linux/atlassian/confluence/6/6.8.5/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.8.5 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.8.5/Makefile b/linux/atlassian/confluence/6/6.8.5/Makefile deleted file mode 100644 index 45a3c676a..000000000 --- a/linux/atlassian/confluence/6/6.8.5/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.8.5 . - diff --git a/linux/atlassian/confluence/6/6.8.5/README.md b/linux/atlassian/confluence/6/6.8.5/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.8.5/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.9.0/Dockerfile b/linux/atlassian/confluence/6/6.9.0/Dockerfile deleted file mode 100644 index e31383c10..000000000 --- a/linux/atlassian/confluence/6/6.9.0/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.9.0 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.9.0/Makefile b/linux/atlassian/confluence/6/6.9.0/Makefile deleted file mode 100644 index 8e9d5875b..000000000 --- a/linux/atlassian/confluence/6/6.9.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.9.0 . - diff --git a/linux/atlassian/confluence/6/6.9.0/README.md b/linux/atlassian/confluence/6/6.9.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.9.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.9.1/Dockerfile b/linux/atlassian/confluence/6/6.9.1/Dockerfile deleted file mode 100644 index f5b01ef4a..000000000 --- a/linux/atlassian/confluence/6/6.9.1/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.9.1 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.9.1/Makefile b/linux/atlassian/confluence/6/6.9.1/Makefile deleted file mode 100644 index e10d5aa7c..000000000 --- a/linux/atlassian/confluence/6/6.9.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.9.1 . diff --git a/linux/atlassian/confluence/6/6.9.1/README.md b/linux/atlassian/confluence/6/6.9.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.9.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/6.9.3/Dockerfile b/linux/atlassian/confluence/6/6.9.3/Dockerfile deleted file mode 100644 index e5540d33d..000000000 --- a/linux/atlassian/confluence/6/6.9.3/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=6.9.3 -ARG DOWNLOAD_URL=http://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/6/6.9.3/Makefile b/linux/atlassian/confluence/6/6.9.3/Makefile deleted file mode 100644 index 24cf8034f..000000000 --- a/linux/atlassian/confluence/6/6.9.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.9.3 . diff --git a/linux/atlassian/confluence/6/6.9.3/README.md b/linux/atlassian/confluence/6/6.9.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/6/6.9.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/6/README.md b/linux/atlassian/confluence/6/README.md deleted file mode 100644 index 0b5136ccf..000000000 --- a/linux/atlassian/confluence/6/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# [Atlassian Enterprise releases](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html) -## Build info - -All presented images avalible on our repo in docker hub. - -------- - -*Some old versions of Confluence may fail health check with [AdoptOpenJDK](https://github.com/AdoptOpenJDK) (open source, prebuilt OpenJDK binaries). But it will be works.* \ No newline at end of file diff --git a/linux/atlassian/confluence/7/7.0.1/README.md b/linux/atlassian/confluence/7/7.0.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.0.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.0.2/README.md b/linux/atlassian/confluence/7/7.0.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.0.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.0.3/README.md b/linux/atlassian/confluence/7/7.0.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.0.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.0.4/README.md b/linux/atlassian/confluence/7/7.0.4/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.0.4/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.0.5/README.md b/linux/atlassian/confluence/7/7.0.5/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.0.5/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.1.0/README.md b/linux/atlassian/confluence/7/7.1.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.1.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.1.1/README.md b/linux/atlassian/confluence/7/7.1.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.1.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.1.2/README.md b/linux/atlassian/confluence/7/7.1.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.1.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.2.0/README.md b/linux/atlassian/confluence/7/7.2.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.2.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.2.1/README.md b/linux/atlassian/confluence/7/7.2.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.2.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.2.2/README.md b/linux/atlassian/confluence/7/7.2.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.2.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.3.1/README.md b/linux/atlassian/confluence/7/7.3.1/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.3.1/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.3.2/README.md b/linux/atlassian/confluence/7/7.3.2/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.3.2/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.3.3/README.md b/linux/atlassian/confluence/7/7.3.3/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.3.3/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.3.4/README.md b/linux/atlassian/confluence/7/7.3.4/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.3.4/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.3.5/README.md b/linux/atlassian/confluence/7/7.3.5/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.3.5/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.4.0/README.md b/linux/atlassian/confluence/7/7.4.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.4.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/7.5.0/README.md b/linux/atlassian/confluence/7/7.5.0/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/7/7.5.0/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/confluence/7/README.md b/linux/atlassian/confluence/7/README.md deleted file mode 100644 index 0b5136ccf..000000000 --- a/linux/atlassian/confluence/7/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# [Atlassian Enterprise releases](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html) -## Build info - -All presented images avalible on our repo in docker hub. - -------- - -*Some old versions of Confluence may fail health check with [AdoptOpenJDK](https://github.com/AdoptOpenJDK) (open source, prebuilt OpenJDK binaries). But it will be works.* \ No newline at end of file diff --git a/linux/atlassian/confluence/README.md b/linux/atlassian/confluence/README.md deleted file mode 100644 index 309865c3f..000000000 --- a/linux/atlassian/confluence/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# [Atlassian Enterprise releases](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html) -## Build info - -All presented images avalible on our repo in docker hub. - -## LTS releases: -* Latest version of Confluence `6.13.4` - -------- - -*Some old versions of Confluence may fail health check with [AdoptOpenJDK](https://github.com/AdoptOpenJDK) (open source, prebuilt OpenJDK binaries). But it will be works.* \ No newline at end of file diff --git a/linux/atlassian/confluence/latest/Dockerfile b/linux/atlassian/confluence/latest/Dockerfile deleted file mode 100644 index 7ae05c9dc..000000000 --- a/linux/atlassian/confluence/latest/Dockerfile +++ /dev/null @@ -1,45 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=7.11.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/latest/Dockerfile.jdk11 b/linux/atlassian/confluence/latest/Dockerfile.jdk11 deleted file mode 100644 index 5846e6aae..000000000 --- a/linux/atlassian/confluence/latest/Dockerfile.jdk11 +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG CONFLUENCE_VERSION=7.11.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html -ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence -ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence - -VOLUME ["${CONFLUENCE_HOME}"] -WORKDIR $CONFLUENCE_HOME - -# Expose HTTP and Synchrony ports -EXPOSE 8090 -EXPOSE 8091 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ - && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/confluence/latest/Makefile b/linux/atlassian/confluence/latest/Makefile deleted file mode 100644 index 2a085ddba..000000000 --- a/linux/atlassian/confluence/latest/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence . - docker push epicmorg/confluence \ No newline at end of file diff --git a/linux/atlassian/confluence/latest/README.md b/linux/atlassian/confluence/latest/README.md deleted file mode 100644 index 7e5b92f37..000000000 --- a/linux/atlassian/confluence/latest/README.md +++ /dev/null @@ -1,131 +0,0 @@ -![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) - -Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. - -Learn more about Confluence Server: - -You can find the repository for this Dockerfile at - -# Overview - -This Docker container makes it easy to get an instance of Confluence up and running. - -# Quick Start - -For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data -(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): - -Start Atlassian Confluence Server: - - $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* - -Please ensure your container has the necessary resources allocated to it. -We recommend 2GiB of memory allocated to accommodate the application server. -See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ - -## Memory / Heap Size - -If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 1024m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which Confluence is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Confluence - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence - - -# Upgrade - -To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` -container and start a new one based on a more recent image: - - $> docker stop confluence - $> docker rm confluence - $> docker run ... (see above) - -As your data is stored in the data volume directory on the host, it will still -be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `confluence` -container and its volumes using the `-v` option._ - -# Backup - -For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). - -Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. - -Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Confluence Server. -So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. - -Alternatively, you can use a specific minor version of Confluence Server by using a version number -tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that -is available. - -## Versions available - -* `epicmorg/confluence:latest` -* `epicmorg/confluence:5.6.4` -* `epicmorg/confluence:5.10.8` - -# Known Problems -In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: - Error writing state to confluence.cfg.xml -com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. - -See https://github.com/docker/docker/issues/4023 for details. - -To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. - -# Support - -This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. - -To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. - -For product support go to [support.atlassian.com](http://support.atlassian.com). - diff --git a/linux/atlassian/fisheye-crucible/README.md b/linux/atlassian/fisheye-crucible/README.md deleted file mode 100644 index 246a05c39..000000000 --- a/linux/atlassian/fisheye-crucible/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Atlassian Enterprise releases -## Build info - -All presented images avalible on our repo in docker hub. - - - -## LTS releases: -* Unknown - -------- - -*Some old versions of Bitbucket may fail health check with [AdoptOpenJDK](https://github.com/AdoptOpenJDK) (open source, prebuilt OpenJDK binaries). But it will be works.* \ No newline at end of file diff --git a/linux/atlassian/fisheye-crucible/latest/Dockerfile b/linux/atlassian/fisheye-crucible/latest/Dockerfile deleted file mode 100644 index 8ef319b91..000000000 --- a/linux/atlassian/fisheye-crucible/latest/Dockerfile +++ /dev/null @@ -1,48 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG FECRU_VERSION=4.8.6 -ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/fisheye/downloads/fisheye-${FECRU_VERSION}.zip - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html -ENV FISHEYE_HOME /opt/atlassian/fecru -ENV FISHEYE_INST /var/atlassian/application-data/fecru - -VOLUME ["${FISHEYE_INST}"] -WORKDIR $FISHEYE_INST - -# Expose HTTP port -EXPOSE 8060 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${FISHEYE_HOME} \ - && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${FECRU_VERSION}.zip \ - && unzip -q /tmp/fisheye-${FECRU_VERSION}.zip -d /tmp \ - && mv /tmp/fecru-${FECRU_VERSION}/* ${FISHEYE_HOME} \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ - && chmod +x /usr/bin/p4 \ - && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ - && apt-get clean -y \ - && apt-get autoclean -y \ - && rm -rfv /tmp/fisheye-${FECRU_VERSION}.zip \ - && rm -rfv /tmp/fecru-${FECRU_VERSION} \ - && rm -rfv /var/lib/apt/lists/* \ - && rm -rfv /var/cache/apt/archives/*.deb - -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp - -CMD ["/entrypoint.sh", "run"] -ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/atlassian/fisheye-crucible/latest/Makefile b/linux/atlassian/fisheye-crucible/latest/Makefile deleted file mode 100644 index 973415421..000000000 --- a/linux/atlassian/fisheye-crucible/latest/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: fisheye-crucible - -fisheye-crucible: - docker build --compress -t epicmorg/fisheye-crucible:latest . - docker push epicmorg/fisheye-crucible:latest \ No newline at end of file diff --git a/linux/atlassian/fisheye-crucible/latest/README.md b/linux/atlassian/fisheye-crucible/latest/README.md deleted file mode 100644 index e06bb6d22..000000000 --- a/linux/atlassian/fisheye-crucible/latest/README.md +++ /dev/null @@ -1,110 +0,0 @@ -![Atlassian Fisheye](https://wac-cdn.atlassian.com/dam/jcr:0785bca2-a166-47ef-aeec-c657e7627af0/Fisheye@2x-blue.png?cdnVersion=363) -![Atlassian Crucible](https://wac-cdn.atlassian.com/dam/jcr:b601a46c-ece6-4cda-94ae-d95b1d94cbfd/Crucible@2x-blue.png?cdnVersion=363) - -With FishEye you can search code, visualize and report on activity and find for commits, files, revisions, or teammates across SVN, Git, Mercurial, CVS and Perforce. - -Atlassian Crucible takes the pain out of code review. Find bugs and improve code quality through peer code review from JIRA or your workflow. - -Learn more about Fisheye: [https://www.atlassian.com/software/fisheye](https://www.atlassian.com/software/fisheye) - -Learn more about Crucible: [https://www.atlassian.com/software/crucible](https://www.atlassian.com/software/crucible) - -# Overview - -This Docker container makes it easy to get an instance of Fisheye/Crucible up and running. - -# Quick Start - -For the `FISHEYE_INST` directory that is used to store the application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name fecruVolume - $> docker run -v fecruVolume:/var/atlassian/application-data/fecru --name="fecru" -d -p 8060:8060 epicmorg/fisheye-crucible - - -**Success**. Fisheye/Crucible is now available on [http://localhost:8060](http://localhost:8060)* - -Please ensure your container has the necessary resources allocated to it. We recommend 1GiB of memory allocated to accommodate the application server. See [Supported Platforms](https://confluence.atlassian.com/fisheye/supported-platforms-298976955.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8060` instead._ - -## Memory / Heap Size - -If you need to override Fisheye/Crucible's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: NONE) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 1024m) - - The maximum heap size of the JVM - - -## JVM configuration - -If you need to pass additional JVM arguments to Fisheye/Crucible, such as specifying a custom trust store, you can add them via the below environment variable - -* `FISHEYE_OPTS` - - Additional JVM arguments for Fisheye/Crucible - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for Fisheye/Crucible. These are appended to `FISHEYE_OPTS`; this option exists only for consistency with other Atlassian Docker images. - - -## Other configuration - -Additional configuration options are available to Fisheye/Crucible: - -* `FISHEYE_ARGS` - - The arguments which will be passed to Fisheye when it is started. You can set this to --debug, for example, or --debug-perf if you always want to have Fisheye debugging put into the Fisheye log files. See also [Command line options](https://confluence.atlassian.com/fisheye/command-line-options-298976950.html) - -* `FISHEYE_LIBRARY_PATH` - - Used to tell Fisheye where it should look to load any additional native libraries - - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/fecru/cacerts -v fecruVolume:/var/atlassian/application-data/fecru --name="fecru" -d -p 8060:8060 epicmorg/fisheye-crucible - -# Upgrade - -To upgrade to a more recent version of Fisheye/Crucible you can simply stop the `fecru` container and start a new one based on a more recent image: - - $> docker stop fecru - $> docker rm fecru - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `fecru` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the Fisheye/Crucible home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure Fisheye/Crucible to make a backup automatically each night. This will back up the current state, including the database to the `fecruVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the `FISHEYE_INST` directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/fisheye/backing-up-and-restoring-fisheye-data-298976928.html](https://confluence.atlassian.com/fisheye/backing-up-and-restoring-fisheye-data-298976928.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian Fisheye/Crucible. Thus `epicmorg/fisheye-crucible:latest` will use the newest version of Fisheye/Crucible available. - -Alternatively you can use a specific major, major.minor, or major.minor.patch version of Fisheye/Crucible by using a version number tag: - -* `epicmorg/fisheye-crucible:4` -* `epicmorg/fisheye-crucible:4.6` -* `epicmorg/fisheye-crucible:4.6.1` - -All versions from 4.0+ are available - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/5/5.0.0 b/linux/atlassian/jira/5/5.0.0 deleted file mode 100644 index cdb8d0e60..000000000 --- a/linux/atlassian/jira/5/5.0.0 +++ /dev/null @@ -1 +0,0 @@ -init \ No newline at end of file diff --git a/linux/atlassian/jira/5/README.md b/linux/atlassian/jira/5/README.md deleted file mode 100644 index 779da3211..000000000 --- a/linux/atlassian/jira/5/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Atlassian Enterprise releases -## Build info - -All presented images avalible on our repo in docker hub. - -------- - -*Some old versions of Jira may fail health check with [AdoptOpenJDK](https://github.com/AdoptOpenJDK) (open source, prebuilt OpenJDK binaries). But it will be works.* \ No newline at end of file diff --git a/linux/atlassian/jira/6/6.3.15/Dockerfile b/linux/atlassian/jira/6/6.3.15/Dockerfile deleted file mode 100644 index 5b34ba500..000000000 --- a/linux/atlassian/jira/6/6.3.15/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk7 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=6.3.15 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/6/6.3.15/Makefile b/linux/atlassian/jira/6/6.3.15/Makefile deleted file mode 100644 index 1600cdd9c..000000000 --- a/linux/atlassian/jira/6/6.3.15/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:6.3.15 . - docker push epicmorg/jira:6.3.15 diff --git a/linux/atlassian/jira/6/6.3.15/README.md b/linux/atlassian/jira/6/6.3.15/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/6/6.3.15/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/6/6.4.14/Dockerfile b/linux/atlassian/jira/6/6.4.14/Dockerfile deleted file mode 100644 index ccea5ede7..000000000 --- a/linux/atlassian/jira/6/6.4.14/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk7 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=6.4.14 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/6/6.4.14/Makefile b/linux/atlassian/jira/6/6.4.14/Makefile deleted file mode 100644 index 8f1d19b9d..000000000 --- a/linux/atlassian/jira/6/6.4.14/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:6.4.14 . - docker push epicmorg/jira:6.4.14 diff --git a/linux/atlassian/jira/6/6.4.14/README.md b/linux/atlassian/jira/6/6.4.14/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/6/6.4.14/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/6/README.md b/linux/atlassian/jira/6/README.md deleted file mode 100644 index 779da3211..000000000 --- a/linux/atlassian/jira/6/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Atlassian Enterprise releases -## Build info - -All presented images avalible on our repo in docker hub. - -------- - -*Some old versions of Jira may fail health check with [AdoptOpenJDK](https://github.com/AdoptOpenJDK) (open source, prebuilt OpenJDK binaries). But it will be works.* \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.0.0/Dockerfile b/linux/atlassian/jira/7/7.0.0/Dockerfile deleted file mode 100644 index ca8f4b68e..000000000 --- a/linux/atlassian/jira/7/7.0.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.0.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}-jira-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.0.0/Makefile b/linux/atlassian/jira/7/7.0.0/Makefile deleted file mode 100644 index be763d410..000000000 --- a/linux/atlassian/jira/7/7.0.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.0.0 . diff --git a/linux/atlassian/jira/7/7.0.0/README.md b/linux/atlassian/jira/7/7.0.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.0.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.0.10/Dockerfile b/linux/atlassian/jira/7/7.0.10/Dockerfile deleted file mode 100644 index b9c7daa0c..000000000 --- a/linux/atlassian/jira/7/7.0.10/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.0.10 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}-jira-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.0.10/Makefile b/linux/atlassian/jira/7/7.0.10/Makefile deleted file mode 100644 index 0e9be2360..000000000 --- a/linux/atlassian/jira/7/7.0.10/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.0.10 . diff --git a/linux/atlassian/jira/7/7.0.10/README.md b/linux/atlassian/jira/7/7.0.10/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.0.10/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.0.11/Dockerfile b/linux/atlassian/jira/7/7.0.11/Dockerfile deleted file mode 100644 index 25fa7b74c..000000000 --- a/linux/atlassian/jira/7/7.0.11/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.0.11 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.0.11/Makefile b/linux/atlassian/jira/7/7.0.11/Makefile deleted file mode 100644 index e078161b8..000000000 --- a/linux/atlassian/jira/7/7.0.11/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.0.11 . diff --git a/linux/atlassian/jira/7/7.0.11/README.md b/linux/atlassian/jira/7/7.0.11/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.0.11/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.0.2/Dockerfile b/linux/atlassian/jira/7/7.0.2/Dockerfile deleted file mode 100644 index e26bbba41..000000000 --- a/linux/atlassian/jira/7/7.0.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.0.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}-jira-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.0.2/Makefile b/linux/atlassian/jira/7/7.0.2/Makefile deleted file mode 100644 index 257105852..000000000 --- a/linux/atlassian/jira/7/7.0.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.0.2 . diff --git a/linux/atlassian/jira/7/7.0.2/README.md b/linux/atlassian/jira/7/7.0.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.0.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.0.4/Dockerfile b/linux/atlassian/jira/7/7.0.4/Dockerfile deleted file mode 100644 index 92f8d5eb7..000000000 --- a/linux/atlassian/jira/7/7.0.4/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.0.4 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}-jira-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.0.4/Makefile b/linux/atlassian/jira/7/7.0.4/Makefile deleted file mode 100644 index a03580e31..000000000 --- a/linux/atlassian/jira/7/7.0.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.0.4 . diff --git a/linux/atlassian/jira/7/7.0.4/README.md b/linux/atlassian/jira/7/7.0.4/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.0.4/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.0.5/Dockerfile b/linux/atlassian/jira/7/7.0.5/Dockerfile deleted file mode 100644 index f4867fcc8..000000000 --- a/linux/atlassian/jira/7/7.0.5/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.0.5 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}-jira-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.0.5/Makefile b/linux/atlassian/jira/7/7.0.5/Makefile deleted file mode 100644 index cbb7cb153..000000000 --- a/linux/atlassian/jira/7/7.0.5/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.0.5 . diff --git a/linux/atlassian/jira/7/7.0.5/README.md b/linux/atlassian/jira/7/7.0.5/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.0.5/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.1.0/Dockerfile b/linux/atlassian/jira/7/7.1.0/Dockerfile deleted file mode 100644 index 5190a5edf..000000000 --- a/linux/atlassian/jira/7/7.1.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.1.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}-jira-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.1.0/Makefile b/linux/atlassian/jira/7/7.1.0/Makefile deleted file mode 100644 index 1c6bc6751..000000000 --- a/linux/atlassian/jira/7/7.1.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.1.0 . diff --git a/linux/atlassian/jira/7/7.1.0/README.md b/linux/atlassian/jira/7/7.1.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.1.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.1.1/Dockerfile b/linux/atlassian/jira/7/7.1.1/Dockerfile deleted file mode 100644 index 528898b27..000000000 --- a/linux/atlassian/jira/7/7.1.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.1.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}-jira-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.1.1/Makefile b/linux/atlassian/jira/7/7.1.1/Makefile deleted file mode 100644 index 2bcd8ce3b..000000000 --- a/linux/atlassian/jira/7/7.1.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.1.1 . diff --git a/linux/atlassian/jira/7/7.1.1/README.md b/linux/atlassian/jira/7/7.1.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.1.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.1.10/Dockerfile b/linux/atlassian/jira/7/7.1.10/Dockerfile deleted file mode 100644 index f4a4d282d..000000000 --- a/linux/atlassian/jira/7/7.1.10/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.1.10 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.1.10/Makefile b/linux/atlassian/jira/7/7.1.10/Makefile deleted file mode 100644 index 620d5a603..000000000 --- a/linux/atlassian/jira/7/7.1.10/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.1.10 . diff --git a/linux/atlassian/jira/7/7.1.10/README.md b/linux/atlassian/jira/7/7.1.10/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.1.10/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.1.2/Dockerfile b/linux/atlassian/jira/7/7.1.2/Dockerfile deleted file mode 100644 index ba19c9e0a..000000000 --- a/linux/atlassian/jira/7/7.1.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.1.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}-jira-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.1.2/Makefile b/linux/atlassian/jira/7/7.1.2/Makefile deleted file mode 100644 index c2f355e7e..000000000 --- a/linux/atlassian/jira/7/7.1.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.1.2 . diff --git a/linux/atlassian/jira/7/7.1.2/README.md b/linux/atlassian/jira/7/7.1.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.1.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.1.4/Dockerfile b/linux/atlassian/jira/7/7.1.4/Dockerfile deleted file mode 100644 index 4f80056f7..000000000 --- a/linux/atlassian/jira/7/7.1.4/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.1.4 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}-jira-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.1.4/Makefile b/linux/atlassian/jira/7/7.1.4/Makefile deleted file mode 100644 index f5bd527a8..000000000 --- a/linux/atlassian/jira/7/7.1.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.1.4 . diff --git a/linux/atlassian/jira/7/7.1.4/README.md b/linux/atlassian/jira/7/7.1.4/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.1.4/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.1.6/Dockerfile b/linux/atlassian/jira/7/7.1.6/Dockerfile deleted file mode 100644 index 4bb4b598f..000000000 --- a/linux/atlassian/jira/7/7.1.6/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.1.6 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}-jira-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.1.6/Makefile b/linux/atlassian/jira/7/7.1.6/Makefile deleted file mode 100644 index dcc53b272..000000000 --- a/linux/atlassian/jira/7/7.1.6/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.1.6 . diff --git a/linux/atlassian/jira/7/7.1.6/README.md b/linux/atlassian/jira/7/7.1.6/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.1.6/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.1.7/Dockerfile b/linux/atlassian/jira/7/7.1.7/Dockerfile deleted file mode 100644 index 98d602ad2..000000000 --- a/linux/atlassian/jira/7/7.1.7/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.1.7 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}-jira-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.1.7/Makefile b/linux/atlassian/jira/7/7.1.7/Makefile deleted file mode 100644 index 0150406ad..000000000 --- a/linux/atlassian/jira/7/7.1.7/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.1.7 . diff --git a/linux/atlassian/jira/7/7.1.7/README.md b/linux/atlassian/jira/7/7.1.7/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.1.7/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.1.8/Dockerfile b/linux/atlassian/jira/7/7.1.8/Dockerfile deleted file mode 100644 index bac2351d8..000000000 --- a/linux/atlassian/jira/7/7.1.8/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.1.8 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}-jira-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.1.8/Makefile b/linux/atlassian/jira/7/7.1.8/Makefile deleted file mode 100644 index a3c7f5c89..000000000 --- a/linux/atlassian/jira/7/7.1.8/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.1.8 . diff --git a/linux/atlassian/jira/7/7.1.8/README.md b/linux/atlassian/jira/7/7.1.8/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.1.8/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.1.9/Dockerfile b/linux/atlassian/jira/7/7.1.9/Dockerfile deleted file mode 100644 index cfdfbd6e2..000000000 --- a/linux/atlassian/jira/7/7.1.9/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.1.9 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.1.9/Makefile b/linux/atlassian/jira/7/7.1.9/Makefile deleted file mode 100644 index 410dc7fe5..000000000 --- a/linux/atlassian/jira/7/7.1.9/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.1.9 . diff --git a/linux/atlassian/jira/7/7.1.9/README.md b/linux/atlassian/jira/7/7.1.9/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.1.9/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.10.0/Dockerfile b/linux/atlassian/jira/7/7.10.0/Dockerfile deleted file mode 100644 index a0f302de7..000000000 --- a/linux/atlassian/jira/7/7.10.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.10.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.10.0/Makefile b/linux/atlassian/jira/7/7.10.0/Makefile deleted file mode 100644 index 1b52be659..000000000 --- a/linux/atlassian/jira/7/7.10.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.10.0 . diff --git a/linux/atlassian/jira/7/7.10.0/README.md b/linux/atlassian/jira/7/7.10.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.10.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.10.1/Dockerfile b/linux/atlassian/jira/7/7.10.1/Dockerfile deleted file mode 100644 index 6e545a8a8..000000000 --- a/linux/atlassian/jira/7/7.10.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.10.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.10.1/Makefile b/linux/atlassian/jira/7/7.10.1/Makefile deleted file mode 100644 index d9af21890..000000000 --- a/linux/atlassian/jira/7/7.10.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.10.1 . diff --git a/linux/atlassian/jira/7/7.10.1/README.md b/linux/atlassian/jira/7/7.10.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.10.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.10.2/Dockerfile b/linux/atlassian/jira/7/7.10.2/Dockerfile deleted file mode 100644 index 5a0561f1c..000000000 --- a/linux/atlassian/jira/7/7.10.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.10.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.10.2/Makefile b/linux/atlassian/jira/7/7.10.2/Makefile deleted file mode 100644 index a38c01ee4..000000000 --- a/linux/atlassian/jira/7/7.10.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.10.2 . diff --git a/linux/atlassian/jira/7/7.10.2/README.md b/linux/atlassian/jira/7/7.10.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.10.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.11.0/Dockerfile b/linux/atlassian/jira/7/7.11.0/Dockerfile deleted file mode 100644 index a2195559b..000000000 --- a/linux/atlassian/jira/7/7.11.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.11.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.11.0/Makefile b/linux/atlassian/jira/7/7.11.0/Makefile deleted file mode 100644 index 8696c89ba..000000000 --- a/linux/atlassian/jira/7/7.11.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.11.0 . diff --git a/linux/atlassian/jira/7/7.11.0/README.md b/linux/atlassian/jira/7/7.11.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.11.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.11.1/Dockerfile b/linux/atlassian/jira/7/7.11.1/Dockerfile deleted file mode 100644 index ea24c559d..000000000 --- a/linux/atlassian/jira/7/7.11.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.11.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.11.1/Makefile b/linux/atlassian/jira/7/7.11.1/Makefile deleted file mode 100644 index 5b3888458..000000000 --- a/linux/atlassian/jira/7/7.11.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.11.1 . diff --git a/linux/atlassian/jira/7/7.11.1/README.md b/linux/atlassian/jira/7/7.11.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.11.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.11.2/Dockerfile b/linux/atlassian/jira/7/7.11.2/Dockerfile deleted file mode 100644 index a4a924426..000000000 --- a/linux/atlassian/jira/7/7.11.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.11.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.11.2/Makefile b/linux/atlassian/jira/7/7.11.2/Makefile deleted file mode 100644 index 7cad5e911..000000000 --- a/linux/atlassian/jira/7/7.11.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.11.2 . diff --git a/linux/atlassian/jira/7/7.11.2/README.md b/linux/atlassian/jira/7/7.11.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.11.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.12.0/Dockerfile b/linux/atlassian/jira/7/7.12.0/Dockerfile deleted file mode 100644 index 2befbc48f..000000000 --- a/linux/atlassian/jira/7/7.12.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.12.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.12.0/Makefile b/linux/atlassian/jira/7/7.12.0/Makefile deleted file mode 100644 index ca46ace4c..000000000 --- a/linux/atlassian/jira/7/7.12.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.12.0 . diff --git a/linux/atlassian/jira/7/7.12.0/README.md b/linux/atlassian/jira/7/7.12.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.12.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.12.1/Dockerfile b/linux/atlassian/jira/7/7.12.1/Dockerfile deleted file mode 100644 index cbe320063..000000000 --- a/linux/atlassian/jira/7/7.12.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.12.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.12.1/Makefile b/linux/atlassian/jira/7/7.12.1/Makefile deleted file mode 100644 index c86569ef5..000000000 --- a/linux/atlassian/jira/7/7.12.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.12.1 . diff --git a/linux/atlassian/jira/7/7.12.1/README.md b/linux/atlassian/jira/7/7.12.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.12.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.12.3/Dockerfile b/linux/atlassian/jira/7/7.12.3/Dockerfile deleted file mode 100644 index ff5c9a997..000000000 --- a/linux/atlassian/jira/7/7.12.3/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.12.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.12.3/Makefile b/linux/atlassian/jira/7/7.12.3/Makefile deleted file mode 100644 index 5485c4f70..000000000 --- a/linux/atlassian/jira/7/7.12.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.12.3 . diff --git a/linux/atlassian/jira/7/7.12.3/README.md b/linux/atlassian/jira/7/7.12.3/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.12.3/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.13.0/Dockerfile b/linux/atlassian/jira/7/7.13.0/Dockerfile deleted file mode 100644 index 32d673841..000000000 --- a/linux/atlassian/jira/7/7.13.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.13.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.13.0/Makefile b/linux/atlassian/jira/7/7.13.0/Makefile deleted file mode 100644 index 5da2c7963..000000000 --- a/linux/atlassian/jira/7/7.13.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.13.0 . diff --git a/linux/atlassian/jira/7/7.13.0/README.md b/linux/atlassian/jira/7/7.13.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.13.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.13.1/Dockerfile b/linux/atlassian/jira/7/7.13.1/Dockerfile deleted file mode 100644 index 4f1c76cb7..000000000 --- a/linux/atlassian/jira/7/7.13.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.13.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.13.1/Makefile b/linux/atlassian/jira/7/7.13.1/Makefile deleted file mode 100644 index e37e2b35c..000000000 --- a/linux/atlassian/jira/7/7.13.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.13.1 . diff --git a/linux/atlassian/jira/7/7.13.1/README.md b/linux/atlassian/jira/7/7.13.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.13.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.13.11/Dockerfile b/linux/atlassian/jira/7/7.13.11/Dockerfile deleted file mode 100644 index 6a1bbc847..000000000 --- a/linux/atlassian/jira/7/7.13.11/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.13.11 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.13.11/Makefile b/linux/atlassian/jira/7/7.13.11/Makefile deleted file mode 100644 index 50d0d2038..000000000 --- a/linux/atlassian/jira/7/7.13.11/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.13.11 . diff --git a/linux/atlassian/jira/7/7.13.11/README.md b/linux/atlassian/jira/7/7.13.11/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.13.11/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.13.12/Dockerfile b/linux/atlassian/jira/7/7.13.12/Dockerfile deleted file mode 100644 index fd4d355b0..000000000 --- a/linux/atlassian/jira/7/7.13.12/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.13.12 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.13.12/Makefile b/linux/atlassian/jira/7/7.13.12/Makefile deleted file mode 100644 index 06bff7677..000000000 --- a/linux/atlassian/jira/7/7.13.12/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.13.12 . diff --git a/linux/atlassian/jira/7/7.13.12/README.md b/linux/atlassian/jira/7/7.13.12/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.13.12/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.13.13/Dockerfile b/linux/atlassian/jira/7/7.13.13/Dockerfile deleted file mode 100644 index 888920983..000000000 --- a/linux/atlassian/jira/7/7.13.13/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.13.13 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.13.13/Makefile b/linux/atlassian/jira/7/7.13.13/Makefile deleted file mode 100644 index bb550c00d..000000000 --- a/linux/atlassian/jira/7/7.13.13/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.13.13 . diff --git a/linux/atlassian/jira/7/7.13.13/README.md b/linux/atlassian/jira/7/7.13.13/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.13.13/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.13.2/Dockerfile b/linux/atlassian/jira/7/7.13.2/Dockerfile deleted file mode 100644 index 61675251c..000000000 --- a/linux/atlassian/jira/7/7.13.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.13.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.13.2/Makefile b/linux/atlassian/jira/7/7.13.2/Makefile deleted file mode 100644 index 1ca44fd6d..000000000 --- a/linux/atlassian/jira/7/7.13.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.13.2 . diff --git a/linux/atlassian/jira/7/7.13.2/README.md b/linux/atlassian/jira/7/7.13.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.13.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.13.3/Dockerfile b/linux/atlassian/jira/7/7.13.3/Dockerfile deleted file mode 100644 index 3bb690fbe..000000000 --- a/linux/atlassian/jira/7/7.13.3/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.13.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.13.3/Makefile b/linux/atlassian/jira/7/7.13.3/Makefile deleted file mode 100644 index f98ce31c2..000000000 --- a/linux/atlassian/jira/7/7.13.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.13.3 . diff --git a/linux/atlassian/jira/7/7.13.3/README.md b/linux/atlassian/jira/7/7.13.3/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.13.3/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.13.4/Dockerfile b/linux/atlassian/jira/7/7.13.4/Dockerfile deleted file mode 100644 index 7990267e9..000000000 --- a/linux/atlassian/jira/7/7.13.4/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.13.4 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.13.4/Makefile b/linux/atlassian/jira/7/7.13.4/Makefile deleted file mode 100644 index 3003fd4f8..000000000 --- a/linux/atlassian/jira/7/7.13.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.13.4 . diff --git a/linux/atlassian/jira/7/7.13.4/README.md b/linux/atlassian/jira/7/7.13.4/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.13.4/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.13.5/Dockerfile b/linux/atlassian/jira/7/7.13.5/Dockerfile deleted file mode 100644 index 9dc0928e3..000000000 --- a/linux/atlassian/jira/7/7.13.5/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.13.5 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.13.5/Makefile b/linux/atlassian/jira/7/7.13.5/Makefile deleted file mode 100644 index 6b0b5d4fa..000000000 --- a/linux/atlassian/jira/7/7.13.5/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.13.5 . diff --git a/linux/atlassian/jira/7/7.13.5/README.md b/linux/atlassian/jira/7/7.13.5/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.13.5/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.13.6/Dockerfile b/linux/atlassian/jira/7/7.13.6/Dockerfile deleted file mode 100644 index dfd1d9712..000000000 --- a/linux/atlassian/jira/7/7.13.6/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.13.6 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.13.6/Makefile b/linux/atlassian/jira/7/7.13.6/Makefile deleted file mode 100644 index 5426e1914..000000000 --- a/linux/atlassian/jira/7/7.13.6/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.13.6 . diff --git a/linux/atlassian/jira/7/7.13.6/README.md b/linux/atlassian/jira/7/7.13.6/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.13.6/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.13.8/Dockerfile b/linux/atlassian/jira/7/7.13.8/Dockerfile deleted file mode 100644 index e19343579..000000000 --- a/linux/atlassian/jira/7/7.13.8/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.13.8 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.13.8/Makefile b/linux/atlassian/jira/7/7.13.8/Makefile deleted file mode 100644 index cd67bf905..000000000 --- a/linux/atlassian/jira/7/7.13.8/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.13.8 . diff --git a/linux/atlassian/jira/7/7.13.8/README.md b/linux/atlassian/jira/7/7.13.8/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.13.8/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.13.9/Dockerfile b/linux/atlassian/jira/7/7.13.9/Dockerfile deleted file mode 100644 index 3efaa8d12..000000000 --- a/linux/atlassian/jira/7/7.13.9/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.13.9 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.13.9/Makefile b/linux/atlassian/jira/7/7.13.9/Makefile deleted file mode 100644 index a9edcba91..000000000 --- a/linux/atlassian/jira/7/7.13.9/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.13.9 . diff --git a/linux/atlassian/jira/7/7.13.9/README.md b/linux/atlassian/jira/7/7.13.9/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.13.9/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.0/Dockerfile b/linux/atlassian/jira/7/7.2.0/Dockerfile deleted file mode 100644 index b844d0cf7..000000000 --- a/linux/atlassian/jira/7/7.2.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.0/Makefile b/linux/atlassian/jira/7/7.2.0/Makefile deleted file mode 100644 index 674b0183f..000000000 --- a/linux/atlassian/jira/7/7.2.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.0 . diff --git a/linux/atlassian/jira/7/7.2.0/README.md b/linux/atlassian/jira/7/7.2.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.1/Dockerfile b/linux/atlassian/jira/7/7.2.1/Dockerfile deleted file mode 100644 index baed8a983..000000000 --- a/linux/atlassian/jira/7/7.2.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.1/Makefile b/linux/atlassian/jira/7/7.2.1/Makefile deleted file mode 100644 index 142b75e00..000000000 --- a/linux/atlassian/jira/7/7.2.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.1 . diff --git a/linux/atlassian/jira/7/7.2.1/README.md b/linux/atlassian/jira/7/7.2.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.10/Dockerfile b/linux/atlassian/jira/7/7.2.10/Dockerfile deleted file mode 100644 index ddd5a4b6b..000000000 --- a/linux/atlassian/jira/7/7.2.10/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.10 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.10/Makefile b/linux/atlassian/jira/7/7.2.10/Makefile deleted file mode 100644 index fefd3058f..000000000 --- a/linux/atlassian/jira/7/7.2.10/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.10 . diff --git a/linux/atlassian/jira/7/7.2.10/README.md b/linux/atlassian/jira/7/7.2.10/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.10/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.11/Dockerfile b/linux/atlassian/jira/7/7.2.11/Dockerfile deleted file mode 100644 index e6d17c901..000000000 --- a/linux/atlassian/jira/7/7.2.11/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.11 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.11/Makefile b/linux/atlassian/jira/7/7.2.11/Makefile deleted file mode 100644 index 23967cd19..000000000 --- a/linux/atlassian/jira/7/7.2.11/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.11 . diff --git a/linux/atlassian/jira/7/7.2.11/README.md b/linux/atlassian/jira/7/7.2.11/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.11/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.12/Dockerfile b/linux/atlassian/jira/7/7.2.12/Dockerfile deleted file mode 100644 index 35b9499ce..000000000 --- a/linux/atlassian/jira/7/7.2.12/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.12 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.12/Makefile b/linux/atlassian/jira/7/7.2.12/Makefile deleted file mode 100644 index 1b26f82bb..000000000 --- a/linux/atlassian/jira/7/7.2.12/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.12 . diff --git a/linux/atlassian/jira/7/7.2.12/README.md b/linux/atlassian/jira/7/7.2.12/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.12/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.13/Dockerfile b/linux/atlassian/jira/7/7.2.13/Dockerfile deleted file mode 100644 index 45912f43a..000000000 --- a/linux/atlassian/jira/7/7.2.13/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.13 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.13/Makefile b/linux/atlassian/jira/7/7.2.13/Makefile deleted file mode 100644 index 233a12b8e..000000000 --- a/linux/atlassian/jira/7/7.2.13/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.13 . diff --git a/linux/atlassian/jira/7/7.2.13/README.md b/linux/atlassian/jira/7/7.2.13/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.13/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.14/Dockerfile b/linux/atlassian/jira/7/7.2.14/Dockerfile deleted file mode 100644 index daf88ce43..000000000 --- a/linux/atlassian/jira/7/7.2.14/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.14 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.14/Makefile b/linux/atlassian/jira/7/7.2.14/Makefile deleted file mode 100644 index 460be90f3..000000000 --- a/linux/atlassian/jira/7/7.2.14/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.14 . diff --git a/linux/atlassian/jira/7/7.2.14/README.md b/linux/atlassian/jira/7/7.2.14/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.14/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.15/Dockerfile b/linux/atlassian/jira/7/7.2.15/Dockerfile deleted file mode 100644 index 6a029423e..000000000 --- a/linux/atlassian/jira/7/7.2.15/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.15 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.15/Makefile b/linux/atlassian/jira/7/7.2.15/Makefile deleted file mode 100644 index b1a683876..000000000 --- a/linux/atlassian/jira/7/7.2.15/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.15 . diff --git a/linux/atlassian/jira/7/7.2.15/README.md b/linux/atlassian/jira/7/7.2.15/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.15/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.2/Dockerfile b/linux/atlassian/jira/7/7.2.2/Dockerfile deleted file mode 100644 index fd0548d1a..000000000 --- a/linux/atlassian/jira/7/7.2.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.2/Makefile b/linux/atlassian/jira/7/7.2.2/Makefile deleted file mode 100644 index 3d16590aa..000000000 --- a/linux/atlassian/jira/7/7.2.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.2 . diff --git a/linux/atlassian/jira/7/7.2.2/README.md b/linux/atlassian/jira/7/7.2.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.3/Dockerfile b/linux/atlassian/jira/7/7.2.3/Dockerfile deleted file mode 100644 index 3de5f002e..000000000 --- a/linux/atlassian/jira/7/7.2.3/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.3/Makefile b/linux/atlassian/jira/7/7.2.3/Makefile deleted file mode 100644 index a71c4c82a..000000000 --- a/linux/atlassian/jira/7/7.2.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.3 . diff --git a/linux/atlassian/jira/7/7.2.3/README.md b/linux/atlassian/jira/7/7.2.3/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.3/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.4/Dockerfile b/linux/atlassian/jira/7/7.2.4/Dockerfile deleted file mode 100644 index 0306f95d6..000000000 --- a/linux/atlassian/jira/7/7.2.4/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.4 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.4/Makefile b/linux/atlassian/jira/7/7.2.4/Makefile deleted file mode 100644 index 6c92ba06f..000000000 --- a/linux/atlassian/jira/7/7.2.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.4 . diff --git a/linux/atlassian/jira/7/7.2.4/README.md b/linux/atlassian/jira/7/7.2.4/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.4/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.6/Dockerfile b/linux/atlassian/jira/7/7.2.6/Dockerfile deleted file mode 100644 index c61c921c9..000000000 --- a/linux/atlassian/jira/7/7.2.6/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.6 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.6/Makefile b/linux/atlassian/jira/7/7.2.6/Makefile deleted file mode 100644 index 6b4deb64c..000000000 --- a/linux/atlassian/jira/7/7.2.6/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.6 . diff --git a/linux/atlassian/jira/7/7.2.6/README.md b/linux/atlassian/jira/7/7.2.6/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.6/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.7/Dockerfile b/linux/atlassian/jira/7/7.2.7/Dockerfile deleted file mode 100644 index 2ce57a56e..000000000 --- a/linux/atlassian/jira/7/7.2.7/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.7 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.7/Makefile b/linux/atlassian/jira/7/7.2.7/Makefile deleted file mode 100644 index da51141eb..000000000 --- a/linux/atlassian/jira/7/7.2.7/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.7 . diff --git a/linux/atlassian/jira/7/7.2.7/README.md b/linux/atlassian/jira/7/7.2.7/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.7/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.8/Dockerfile b/linux/atlassian/jira/7/7.2.8/Dockerfile deleted file mode 100644 index 8aa726749..000000000 --- a/linux/atlassian/jira/7/7.2.8/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.8 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.8/Makefile b/linux/atlassian/jira/7/7.2.8/Makefile deleted file mode 100644 index d519af2b2..000000000 --- a/linux/atlassian/jira/7/7.2.8/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.8 . diff --git a/linux/atlassian/jira/7/7.2.8/README.md b/linux/atlassian/jira/7/7.2.8/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.8/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.2.9/Dockerfile b/linux/atlassian/jira/7/7.2.9/Dockerfile deleted file mode 100644 index a29c871e2..000000000 --- a/linux/atlassian/jira/7/7.2.9/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.2.9 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.2.9/Makefile b/linux/atlassian/jira/7/7.2.9/Makefile deleted file mode 100644 index 51087c069..000000000 --- a/linux/atlassian/jira/7/7.2.9/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.2.9 . diff --git a/linux/atlassian/jira/7/7.2.9/README.md b/linux/atlassian/jira/7/7.2.9/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.2.9/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.3.0/Dockerfile b/linux/atlassian/jira/7/7.3.0/Dockerfile deleted file mode 100644 index 75be7bce6..000000000 --- a/linux/atlassian/jira/7/7.3.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.3.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.3.0/Makefile b/linux/atlassian/jira/7/7.3.0/Makefile deleted file mode 100644 index b744b32be..000000000 --- a/linux/atlassian/jira/7/7.3.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.3.0 . diff --git a/linux/atlassian/jira/7/7.3.0/README.md b/linux/atlassian/jira/7/7.3.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.3.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.3.1/Dockerfile b/linux/atlassian/jira/7/7.3.1/Dockerfile deleted file mode 100644 index 85f4595c1..000000000 --- a/linux/atlassian/jira/7/7.3.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.3.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.3.1/Makefile b/linux/atlassian/jira/7/7.3.1/Makefile deleted file mode 100644 index e6ca9757f..000000000 --- a/linux/atlassian/jira/7/7.3.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.3.1 . diff --git a/linux/atlassian/jira/7/7.3.1/README.md b/linux/atlassian/jira/7/7.3.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.3.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.3.2/Dockerfile b/linux/atlassian/jira/7/7.3.2/Dockerfile deleted file mode 100644 index ee39f3bfa..000000000 --- a/linux/atlassian/jira/7/7.3.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.3.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.3.2/Makefile b/linux/atlassian/jira/7/7.3.2/Makefile deleted file mode 100644 index f19a88679..000000000 --- a/linux/atlassian/jira/7/7.3.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.3.2 . diff --git a/linux/atlassian/jira/7/7.3.2/README.md b/linux/atlassian/jira/7/7.3.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.3.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.3.3/Dockerfile b/linux/atlassian/jira/7/7.3.3/Dockerfile deleted file mode 100644 index 193a929ba..000000000 --- a/linux/atlassian/jira/7/7.3.3/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.3.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.3.3/Makefile b/linux/atlassian/jira/7/7.3.3/Makefile deleted file mode 100644 index 5656105a5..000000000 --- a/linux/atlassian/jira/7/7.3.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.3.3 . diff --git a/linux/atlassian/jira/7/7.3.3/README.md b/linux/atlassian/jira/7/7.3.3/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.3.3/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.3.4/Dockerfile b/linux/atlassian/jira/7/7.3.4/Dockerfile deleted file mode 100644 index 268661f8f..000000000 --- a/linux/atlassian/jira/7/7.3.4/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.3.4 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.3.4/Makefile b/linux/atlassian/jira/7/7.3.4/Makefile deleted file mode 100644 index 45256309c..000000000 --- a/linux/atlassian/jira/7/7.3.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.3.4 . diff --git a/linux/atlassian/jira/7/7.3.4/README.md b/linux/atlassian/jira/7/7.3.4/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.3.4/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.3.5/Dockerfile b/linux/atlassian/jira/7/7.3.5/Dockerfile deleted file mode 100644 index dcbabee74..000000000 --- a/linux/atlassian/jira/7/7.3.5/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.3.5 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.3.5/Makefile b/linux/atlassian/jira/7/7.3.5/Makefile deleted file mode 100644 index dcea2c3b0..000000000 --- a/linux/atlassian/jira/7/7.3.5/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.3.5 . diff --git a/linux/atlassian/jira/7/7.3.5/README.md b/linux/atlassian/jira/7/7.3.5/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.3.5/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.3.6/Dockerfile b/linux/atlassian/jira/7/7.3.6/Dockerfile deleted file mode 100644 index 188f6857d..000000000 --- a/linux/atlassian/jira/7/7.3.6/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.3.6 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.3.6/Makefile b/linux/atlassian/jira/7/7.3.6/Makefile deleted file mode 100644 index 7a99ba206..000000000 --- a/linux/atlassian/jira/7/7.3.6/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.3.6 . diff --git a/linux/atlassian/jira/7/7.3.6/README.md b/linux/atlassian/jira/7/7.3.6/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.3.6/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.3.7/Dockerfile b/linux/atlassian/jira/7/7.3.7/Dockerfile deleted file mode 100644 index f274ac5c1..000000000 --- a/linux/atlassian/jira/7/7.3.7/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.3.7 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.3.7/Makefile b/linux/atlassian/jira/7/7.3.7/Makefile deleted file mode 100644 index 7791706ad..000000000 --- a/linux/atlassian/jira/7/7.3.7/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.3.7 . diff --git a/linux/atlassian/jira/7/7.3.7/README.md b/linux/atlassian/jira/7/7.3.7/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.3.7/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.3.8/Dockerfile b/linux/atlassian/jira/7/7.3.8/Dockerfile deleted file mode 100644 index fcb483846..000000000 --- a/linux/atlassian/jira/7/7.3.8/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.3.8 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.3.8/Makefile b/linux/atlassian/jira/7/7.3.8/Makefile deleted file mode 100644 index 1efa30532..000000000 --- a/linux/atlassian/jira/7/7.3.8/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.3.8 . diff --git a/linux/atlassian/jira/7/7.3.8/README.md b/linux/atlassian/jira/7/7.3.8/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.3.8/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.3.9/Dockerfile b/linux/atlassian/jira/7/7.3.9/Dockerfile deleted file mode 100644 index 1d85b041b..000000000 --- a/linux/atlassian/jira/7/7.3.9/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.3.9 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.3.9/Makefile b/linux/atlassian/jira/7/7.3.9/Makefile deleted file mode 100644 index 90583bc03..000000000 --- a/linux/atlassian/jira/7/7.3.9/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.3.9 . diff --git a/linux/atlassian/jira/7/7.3.9/README.md b/linux/atlassian/jira/7/7.3.9/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.3.9/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.4.0/Dockerfile b/linux/atlassian/jira/7/7.4.0/Dockerfile deleted file mode 100644 index 1d5527ad5..000000000 --- a/linux/atlassian/jira/7/7.4.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.4.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.4.0/Makefile b/linux/atlassian/jira/7/7.4.0/Makefile deleted file mode 100644 index 52e9ac418..000000000 --- a/linux/atlassian/jira/7/7.4.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.4.0 . diff --git a/linux/atlassian/jira/7/7.4.0/README.md b/linux/atlassian/jira/7/7.4.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.4.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.4.1/Dockerfile b/linux/atlassian/jira/7/7.4.1/Dockerfile deleted file mode 100644 index 6f74d409b..000000000 --- a/linux/atlassian/jira/7/7.4.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.4.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.4.1/Makefile b/linux/atlassian/jira/7/7.4.1/Makefile deleted file mode 100644 index c7c83da76..000000000 --- a/linux/atlassian/jira/7/7.4.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.4.1 . diff --git a/linux/atlassian/jira/7/7.4.1/README.md b/linux/atlassian/jira/7/7.4.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.4.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.4.2/Dockerfile b/linux/atlassian/jira/7/7.4.2/Dockerfile deleted file mode 100644 index 5aba5380a..000000000 --- a/linux/atlassian/jira/7/7.4.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.4.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.4.2/Makefile b/linux/atlassian/jira/7/7.4.2/Makefile deleted file mode 100644 index 4fdc41139..000000000 --- a/linux/atlassian/jira/7/7.4.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.4.2 . diff --git a/linux/atlassian/jira/7/7.4.2/README.md b/linux/atlassian/jira/7/7.4.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.4.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.4.3/Dockerfile b/linux/atlassian/jira/7/7.4.3/Dockerfile deleted file mode 100644 index 20063c3f2..000000000 --- a/linux/atlassian/jira/7/7.4.3/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.4.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.4.3/Makefile b/linux/atlassian/jira/7/7.4.3/Makefile deleted file mode 100644 index 009baca7e..000000000 --- a/linux/atlassian/jira/7/7.4.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.4.3 . diff --git a/linux/atlassian/jira/7/7.4.3/README.md b/linux/atlassian/jira/7/7.4.3/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.4.3/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.4.4/Dockerfile b/linux/atlassian/jira/7/7.4.4/Dockerfile deleted file mode 100644 index 8980155df..000000000 --- a/linux/atlassian/jira/7/7.4.4/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.4.4 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.4.4/Makefile b/linux/atlassian/jira/7/7.4.4/Makefile deleted file mode 100644 index 4628d54ba..000000000 --- a/linux/atlassian/jira/7/7.4.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.4.4 . diff --git a/linux/atlassian/jira/7/7.4.4/README.md b/linux/atlassian/jira/7/7.4.4/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.4.4/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.4.5/Dockerfile b/linux/atlassian/jira/7/7.4.5/Dockerfile deleted file mode 100644 index 8431bda78..000000000 --- a/linux/atlassian/jira/7/7.4.5/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.4.5 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.4.5/Makefile b/linux/atlassian/jira/7/7.4.5/Makefile deleted file mode 100644 index 99d248d42..000000000 --- a/linux/atlassian/jira/7/7.4.5/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.4.5 . diff --git a/linux/atlassian/jira/7/7.4.5/README.md b/linux/atlassian/jira/7/7.4.5/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.4.5/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.4.6/Dockerfile b/linux/atlassian/jira/7/7.4.6/Dockerfile deleted file mode 100644 index d4691ceab..000000000 --- a/linux/atlassian/jira/7/7.4.6/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.4.6 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.4.6/Makefile b/linux/atlassian/jira/7/7.4.6/Makefile deleted file mode 100644 index 7dd540b9b..000000000 --- a/linux/atlassian/jira/7/7.4.6/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.4.6 . diff --git a/linux/atlassian/jira/7/7.4.6/README.md b/linux/atlassian/jira/7/7.4.6/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.4.6/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.5.0/Dockerfile b/linux/atlassian/jira/7/7.5.0/Dockerfile deleted file mode 100644 index 5bb1823dd..000000000 --- a/linux/atlassian/jira/7/7.5.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.5.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.5.0/Makefile b/linux/atlassian/jira/7/7.5.0/Makefile deleted file mode 100644 index 79ae30952..000000000 --- a/linux/atlassian/jira/7/7.5.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.5.0 . diff --git a/linux/atlassian/jira/7/7.5.0/README.md b/linux/atlassian/jira/7/7.5.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.5.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.5.1/Dockerfile b/linux/atlassian/jira/7/7.5.1/Dockerfile deleted file mode 100644 index c6d46d9de..000000000 --- a/linux/atlassian/jira/7/7.5.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.5.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.5.1/Makefile b/linux/atlassian/jira/7/7.5.1/Makefile deleted file mode 100644 index f27d551d1..000000000 --- a/linux/atlassian/jira/7/7.5.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.5.1 . diff --git a/linux/atlassian/jira/7/7.5.1/README.md b/linux/atlassian/jira/7/7.5.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.5.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.5.2/Dockerfile b/linux/atlassian/jira/7/7.5.2/Dockerfile deleted file mode 100644 index 5940efb6b..000000000 --- a/linux/atlassian/jira/7/7.5.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.5.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.5.2/Makefile b/linux/atlassian/jira/7/7.5.2/Makefile deleted file mode 100644 index bff56675e..000000000 --- a/linux/atlassian/jira/7/7.5.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.5.2 . diff --git a/linux/atlassian/jira/7/7.5.2/README.md b/linux/atlassian/jira/7/7.5.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.5.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.5.3/Dockerfile b/linux/atlassian/jira/7/7.5.3/Dockerfile deleted file mode 100644 index 93a55b9b4..000000000 --- a/linux/atlassian/jira/7/7.5.3/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.5.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.5.3/Makefile b/linux/atlassian/jira/7/7.5.3/Makefile deleted file mode 100644 index 629bbb09d..000000000 --- a/linux/atlassian/jira/7/7.5.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.5.3 . diff --git a/linux/atlassian/jira/7/7.5.3/README.md b/linux/atlassian/jira/7/7.5.3/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.5.3/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.5.4/Dockerfile b/linux/atlassian/jira/7/7.5.4/Dockerfile deleted file mode 100644 index 0fb88b1ec..000000000 --- a/linux/atlassian/jira/7/7.5.4/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.5.4 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.5.4/Makefile b/linux/atlassian/jira/7/7.5.4/Makefile deleted file mode 100644 index 7a62f47df..000000000 --- a/linux/atlassian/jira/7/7.5.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.5.4 . diff --git a/linux/atlassian/jira/7/7.5.4/README.md b/linux/atlassian/jira/7/7.5.4/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.5.4/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.0/Dockerfile b/linux/atlassian/jira/7/7.6.0/Dockerfile deleted file mode 100644 index 05617e427..000000000 --- a/linux/atlassian/jira/7/7.6.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.0/Makefile b/linux/atlassian/jira/7/7.6.0/Makefile deleted file mode 100644 index 22296bdc8..000000000 --- a/linux/atlassian/jira/7/7.6.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.0 . diff --git a/linux/atlassian/jira/7/7.6.0/README.md b/linux/atlassian/jira/7/7.6.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.1/Dockerfile b/linux/atlassian/jira/7/7.6.1/Dockerfile deleted file mode 100644 index b64b86a27..000000000 --- a/linux/atlassian/jira/7/7.6.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.1/Makefile b/linux/atlassian/jira/7/7.6.1/Makefile deleted file mode 100644 index 0f3b0d140..000000000 --- a/linux/atlassian/jira/7/7.6.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.1 . diff --git a/linux/atlassian/jira/7/7.6.1/README.md b/linux/atlassian/jira/7/7.6.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.10/Dockerfile b/linux/atlassian/jira/7/7.6.10/Dockerfile deleted file mode 100644 index ed257cf20..000000000 --- a/linux/atlassian/jira/7/7.6.10/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.10 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.10/Makefile b/linux/atlassian/jira/7/7.6.10/Makefile deleted file mode 100644 index edac4d2f6..000000000 --- a/linux/atlassian/jira/7/7.6.10/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.10 . diff --git a/linux/atlassian/jira/7/7.6.10/README.md b/linux/atlassian/jira/7/7.6.10/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.10/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.11/Dockerfile b/linux/atlassian/jira/7/7.6.11/Dockerfile deleted file mode 100644 index d33d794a2..000000000 --- a/linux/atlassian/jira/7/7.6.11/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.11 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.11/Makefile b/linux/atlassian/jira/7/7.6.11/Makefile deleted file mode 100644 index f1a503f40..000000000 --- a/linux/atlassian/jira/7/7.6.11/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.11 \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.11/README.md b/linux/atlassian/jira/7/7.6.11/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.11/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.12/Dockerfile b/linux/atlassian/jira/7/7.6.12/Dockerfile deleted file mode 100644 index dbf1c3182..000000000 --- a/linux/atlassian/jira/7/7.6.12/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.12 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.12/Makefile b/linux/atlassian/jira/7/7.6.12/Makefile deleted file mode 100644 index 95ea442dc..000000000 --- a/linux/atlassian/jira/7/7.6.12/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.12 . diff --git a/linux/atlassian/jira/7/7.6.12/README.md b/linux/atlassian/jira/7/7.6.12/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.12/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.13/Dockerfile b/linux/atlassian/jira/7/7.6.13/Dockerfile deleted file mode 100644 index e174a3df8..000000000 --- a/linux/atlassian/jira/7/7.6.13/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.13 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.13/Makefile b/linux/atlassian/jira/7/7.6.13/Makefile deleted file mode 100644 index 2720d6482..000000000 --- a/linux/atlassian/jira/7/7.6.13/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.13 . diff --git a/linux/atlassian/jira/7/7.6.13/README.md b/linux/atlassian/jira/7/7.6.13/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.13/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.14/Dockerfile b/linux/atlassian/jira/7/7.6.14/Dockerfile deleted file mode 100644 index 55aa10be3..000000000 --- a/linux/atlassian/jira/7/7.6.14/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.14 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.14/Makefile b/linux/atlassian/jira/7/7.6.14/Makefile deleted file mode 100644 index bc18cc2a6..000000000 --- a/linux/atlassian/jira/7/7.6.14/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.14 . diff --git a/linux/atlassian/jira/7/7.6.14/README.md b/linux/atlassian/jira/7/7.6.14/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.14/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.15/Dockerfile b/linux/atlassian/jira/7/7.6.15/Dockerfile deleted file mode 100644 index 2aea85a3d..000000000 --- a/linux/atlassian/jira/7/7.6.15/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.15 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.15/Makefile b/linux/atlassian/jira/7/7.6.15/Makefile deleted file mode 100644 index de0914463..000000000 --- a/linux/atlassian/jira/7/7.6.15/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.15 . diff --git a/linux/atlassian/jira/7/7.6.15/README.md b/linux/atlassian/jira/7/7.6.15/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.15/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.16/Dockerfile b/linux/atlassian/jira/7/7.6.16/Dockerfile deleted file mode 100644 index 2cdb83881..000000000 --- a/linux/atlassian/jira/7/7.6.16/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.16 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.16/Makefile b/linux/atlassian/jira/7/7.6.16/Makefile deleted file mode 100644 index 53a9333f0..000000000 --- a/linux/atlassian/jira/7/7.6.16/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.16 . diff --git a/linux/atlassian/jira/7/7.6.16/README.md b/linux/atlassian/jira/7/7.6.16/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.16/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.17/Dockerfile b/linux/atlassian/jira/7/7.6.17/Dockerfile deleted file mode 100644 index e12c6532f..000000000 --- a/linux/atlassian/jira/7/7.6.17/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.17 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.17/Makefile b/linux/atlassian/jira/7/7.6.17/Makefile deleted file mode 100644 index 456033f2d..000000000 --- a/linux/atlassian/jira/7/7.6.17/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.17 . diff --git a/linux/atlassian/jira/7/7.6.17/README.md b/linux/atlassian/jira/7/7.6.17/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.17/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.2/Dockerfile b/linux/atlassian/jira/7/7.6.2/Dockerfile deleted file mode 100644 index 8d6fc9d86..000000000 --- a/linux/atlassian/jira/7/7.6.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.2/Makefile b/linux/atlassian/jira/7/7.6.2/Makefile deleted file mode 100644 index d4e074a42..000000000 --- a/linux/atlassian/jira/7/7.6.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.2 . diff --git a/linux/atlassian/jira/7/7.6.2/README.md b/linux/atlassian/jira/7/7.6.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.3/Dockerfile b/linux/atlassian/jira/7/7.6.3/Dockerfile deleted file mode 100644 index b106ce402..000000000 --- a/linux/atlassian/jira/7/7.6.3/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.3/Makefile b/linux/atlassian/jira/7/7.6.3/Makefile deleted file mode 100644 index 7a8c98ffb..000000000 --- a/linux/atlassian/jira/7/7.6.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.3 . diff --git a/linux/atlassian/jira/7/7.6.3/README.md b/linux/atlassian/jira/7/7.6.3/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.3/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.4/Dockerfile b/linux/atlassian/jira/7/7.6.4/Dockerfile deleted file mode 100644 index 66aa5c5f3..000000000 --- a/linux/atlassian/jira/7/7.6.4/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.4 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.4/Makefile b/linux/atlassian/jira/7/7.6.4/Makefile deleted file mode 100644 index 6396d95c3..000000000 --- a/linux/atlassian/jira/7/7.6.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.4 . diff --git a/linux/atlassian/jira/7/7.6.4/README.md b/linux/atlassian/jira/7/7.6.4/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.4/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.6/Dockerfile b/linux/atlassian/jira/7/7.6.6/Dockerfile deleted file mode 100644 index 2041a4e0e..000000000 --- a/linux/atlassian/jira/7/7.6.6/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.6 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.6/Makefile b/linux/atlassian/jira/7/7.6.6/Makefile deleted file mode 100644 index 258c78519..000000000 --- a/linux/atlassian/jira/7/7.6.6/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.6 . diff --git a/linux/atlassian/jira/7/7.6.6/README.md b/linux/atlassian/jira/7/7.6.6/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.6/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.7/Dockerfile b/linux/atlassian/jira/7/7.6.7/Dockerfile deleted file mode 100644 index 93e9070b7..000000000 --- a/linux/atlassian/jira/7/7.6.7/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.7 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.7/Makefile b/linux/atlassian/jira/7/7.6.7/Makefile deleted file mode 100644 index b6dfcfec1..000000000 --- a/linux/atlassian/jira/7/7.6.7/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.7 . diff --git a/linux/atlassian/jira/7/7.6.7/README.md b/linux/atlassian/jira/7/7.6.7/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.7/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.8/Dockerfile b/linux/atlassian/jira/7/7.6.8/Dockerfile deleted file mode 100644 index f7ec54037..000000000 --- a/linux/atlassian/jira/7/7.6.8/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.8 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.8/Makefile b/linux/atlassian/jira/7/7.6.8/Makefile deleted file mode 100644 index d4dbf81e3..000000000 --- a/linux/atlassian/jira/7/7.6.8/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.8 . diff --git a/linux/atlassian/jira/7/7.6.8/README.md b/linux/atlassian/jira/7/7.6.8/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.8/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.6.9/Dockerfile b/linux/atlassian/jira/7/7.6.9/Dockerfile deleted file mode 100644 index c838cc1c5..000000000 --- a/linux/atlassian/jira/7/7.6.9/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.6.9 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.6.9/Makefile b/linux/atlassian/jira/7/7.6.9/Makefile deleted file mode 100644 index 4d1b321ab..000000000 --- a/linux/atlassian/jira/7/7.6.9/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.6.9 . diff --git a/linux/atlassian/jira/7/7.6.9/README.md b/linux/atlassian/jira/7/7.6.9/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.6.9/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.7.0/Dockerfile b/linux/atlassian/jira/7/7.7.0/Dockerfile deleted file mode 100644 index c28dc53fb..000000000 --- a/linux/atlassian/jira/7/7.7.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.7.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.7.0/Makefile b/linux/atlassian/jira/7/7.7.0/Makefile deleted file mode 100644 index 484b63ebe..000000000 --- a/linux/atlassian/jira/7/7.7.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.7.0 . diff --git a/linux/atlassian/jira/7/7.7.0/README.md b/linux/atlassian/jira/7/7.7.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.7.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.7.1/Dockerfile b/linux/atlassian/jira/7/7.7.1/Dockerfile deleted file mode 100644 index 7feb33a0b..000000000 --- a/linux/atlassian/jira/7/7.7.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.7.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.7.1/Makefile b/linux/atlassian/jira/7/7.7.1/Makefile deleted file mode 100644 index f585f6150..000000000 --- a/linux/atlassian/jira/7/7.7.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.7.1 . diff --git a/linux/atlassian/jira/7/7.7.1/README.md b/linux/atlassian/jira/7/7.7.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.7.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.7.2/Dockerfile b/linux/atlassian/jira/7/7.7.2/Dockerfile deleted file mode 100644 index 5a5c5d671..000000000 --- a/linux/atlassian/jira/7/7.7.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.7.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.7.2/Makefile b/linux/atlassian/jira/7/7.7.2/Makefile deleted file mode 100644 index 33f32889d..000000000 --- a/linux/atlassian/jira/7/7.7.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.7.2 . diff --git a/linux/atlassian/jira/7/7.7.2/README.md b/linux/atlassian/jira/7/7.7.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.7.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.7.4/Dockerfile b/linux/atlassian/jira/7/7.7.4/Dockerfile deleted file mode 100644 index 79346f86c..000000000 --- a/linux/atlassian/jira/7/7.7.4/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.7.4 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.7.4/Makefile b/linux/atlassian/jira/7/7.7.4/Makefile deleted file mode 100644 index ec7c511d6..000000000 --- a/linux/atlassian/jira/7/7.7.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.7.4 . diff --git a/linux/atlassian/jira/7/7.7.4/README.md b/linux/atlassian/jira/7/7.7.4/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.7.4/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.8.0/Dockerfile b/linux/atlassian/jira/7/7.8.0/Dockerfile deleted file mode 100644 index 02bca0b8f..000000000 --- a/linux/atlassian/jira/7/7.8.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.8.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.8.0/Makefile b/linux/atlassian/jira/7/7.8.0/Makefile deleted file mode 100644 index a8c1c3708..000000000 --- a/linux/atlassian/jira/7/7.8.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.8.0 . diff --git a/linux/atlassian/jira/7/7.8.0/README.md b/linux/atlassian/jira/7/7.8.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.8.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.8.1/Dockerfile b/linux/atlassian/jira/7/7.8.1/Dockerfile deleted file mode 100644 index 598aca639..000000000 --- a/linux/atlassian/jira/7/7.8.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.8.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.8.1/Makefile b/linux/atlassian/jira/7/7.8.1/Makefile deleted file mode 100644 index 15a553644..000000000 --- a/linux/atlassian/jira/7/7.8.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.8.1 . diff --git a/linux/atlassian/jira/7/7.8.1/README.md b/linux/atlassian/jira/7/7.8.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.8.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.8.2/Dockerfile b/linux/atlassian/jira/7/7.8.2/Dockerfile deleted file mode 100644 index 9e8fb7dc4..000000000 --- a/linux/atlassian/jira/7/7.8.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.8.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.8.2/Makefile b/linux/atlassian/jira/7/7.8.2/Makefile deleted file mode 100644 index 7d73c3eaf..000000000 --- a/linux/atlassian/jira/7/7.8.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.8.2 . diff --git a/linux/atlassian/jira/7/7.8.2/README.md b/linux/atlassian/jira/7/7.8.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.8.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.8.4/Dockerfile b/linux/atlassian/jira/7/7.8.4/Dockerfile deleted file mode 100644 index 06cc20d95..000000000 --- a/linux/atlassian/jira/7/7.8.4/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.8.4 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.8.4/Makefile b/linux/atlassian/jira/7/7.8.4/Makefile deleted file mode 100644 index 13d159ddc..000000000 --- a/linux/atlassian/jira/7/7.8.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.8.4 . diff --git a/linux/atlassian/jira/7/7.8.4/README.md b/linux/atlassian/jira/7/7.8.4/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.8.4/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.9.0/Dockerfile b/linux/atlassian/jira/7/7.9.0/Dockerfile deleted file mode 100644 index 3fcc0c8f1..000000000 --- a/linux/atlassian/jira/7/7.9.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.9.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.9.0/Makefile b/linux/atlassian/jira/7/7.9.0/Makefile deleted file mode 100644 index 083bd154b..000000000 --- a/linux/atlassian/jira/7/7.9.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.9.0 . diff --git a/linux/atlassian/jira/7/7.9.0/README.md b/linux/atlassian/jira/7/7.9.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.9.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/7.9.2/Dockerfile b/linux/atlassian/jira/7/7.9.2/Dockerfile deleted file mode 100644 index ea4dd675b..000000000 --- a/linux/atlassian/jira/7/7.9.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=7.9.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/7/7.9.2/Makefile b/linux/atlassian/jira/7/7.9.2/Makefile deleted file mode 100644 index d16c74d5f..000000000 --- a/linux/atlassian/jira/7/7.9.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:7.9.2 . diff --git a/linux/atlassian/jira/7/7.9.2/README.md b/linux/atlassian/jira/7/7.9.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/7/7.9.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/7/README.md b/linux/atlassian/jira/7/README.md deleted file mode 100644 index 779da3211..000000000 --- a/linux/atlassian/jira/7/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Atlassian Enterprise releases -## Build info - -All presented images avalible on our repo in docker hub. - -------- - -*Some old versions of Jira may fail health check with [AdoptOpenJDK](https://github.com/AdoptOpenJDK) (open source, prebuilt OpenJDK binaries). But it will be works.* \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.0.0/Dockerfile b/linux/atlassian/jira/8/8.0.0/Dockerfile deleted file mode 100644 index 98e94c6bc..000000000 --- a/linux/atlassian/jira/8/8.0.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.0.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.0.0/Makefile b/linux/atlassian/jira/8/8.0.0/Makefile deleted file mode 100644 index ec734ea67..000000000 --- a/linux/atlassian/jira/8/8.0.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.0.0 . diff --git a/linux/atlassian/jira/8/8.0.0/README.md b/linux/atlassian/jira/8/8.0.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.0.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.0.2/Dockerfile b/linux/atlassian/jira/8/8.0.2/Dockerfile deleted file mode 100644 index b4346797e..000000000 --- a/linux/atlassian/jira/8/8.0.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.0.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.0.2/Makefile b/linux/atlassian/jira/8/8.0.2/Makefile deleted file mode 100644 index fd595c493..000000000 --- a/linux/atlassian/jira/8/8.0.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.0.2 . diff --git a/linux/atlassian/jira/8/8.0.2/README.md b/linux/atlassian/jira/8/8.0.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.0.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.0.3/Dockerfile b/linux/atlassian/jira/8/8.0.3/Dockerfile deleted file mode 100644 index c96af7da2..000000000 --- a/linux/atlassian/jira/8/8.0.3/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.0.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.0.3/Makefile b/linux/atlassian/jira/8/8.0.3/Makefile deleted file mode 100644 index af66b6115..000000000 --- a/linux/atlassian/jira/8/8.0.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.0.3 . diff --git a/linux/atlassian/jira/8/8.0.3/README.md b/linux/atlassian/jira/8/8.0.3/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.0.3/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.1.0/Dockerfile b/linux/atlassian/jira/8/8.1.0/Dockerfile deleted file mode 100644 index 60a5c20be..000000000 --- a/linux/atlassian/jira/8/8.1.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.1.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.1.0/Makefile b/linux/atlassian/jira/8/8.1.0/Makefile deleted file mode 100644 index 77ebb66c5..000000000 --- a/linux/atlassian/jira/8/8.1.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.1.0 . diff --git a/linux/atlassian/jira/8/8.1.0/README.md b/linux/atlassian/jira/8/8.1.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.1.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.1.1/Dockerfile b/linux/atlassian/jira/8/8.1.1/Dockerfile deleted file mode 100644 index 3cbd9cb52..000000000 --- a/linux/atlassian/jira/8/8.1.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.1.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.1.1/Makefile b/linux/atlassian/jira/8/8.1.1/Makefile deleted file mode 100644 index 3d9ae7851..000000000 --- a/linux/atlassian/jira/8/8.1.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.1.1 . diff --git a/linux/atlassian/jira/8/8.1.1/README.md b/linux/atlassian/jira/8/8.1.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.1.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.1.2/Dockerfile b/linux/atlassian/jira/8/8.1.2/Dockerfile deleted file mode 100644 index 857d2cf23..000000000 --- a/linux/atlassian/jira/8/8.1.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.1.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.1.2/Makefile b/linux/atlassian/jira/8/8.1.2/Makefile deleted file mode 100644 index 7c89625c5..000000000 --- a/linux/atlassian/jira/8/8.1.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.1.2 . diff --git a/linux/atlassian/jira/8/8.1.2/README.md b/linux/atlassian/jira/8/8.1.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.1.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.1.3/Dockerfile b/linux/atlassian/jira/8/8.1.3/Dockerfile deleted file mode 100644 index c38c5d398..000000000 --- a/linux/atlassian/jira/8/8.1.3/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.1.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.1.3/Makefile b/linux/atlassian/jira/8/8.1.3/Makefile deleted file mode 100644 index 9115ebaf5..000000000 --- a/linux/atlassian/jira/8/8.1.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.1.3 . diff --git a/linux/atlassian/jira/8/8.1.3/README.md b/linux/atlassian/jira/8/8.1.3/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.1.3/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.10.0/Dockerfile b/linux/atlassian/jira/8/8.10.0/Dockerfile deleted file mode 100644 index 0c0da3f30..000000000 --- a/linux/atlassian/jira/8/8.10.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.10.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.10.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.10.0/Dockerfile.jdk11 deleted file mode 100644 index 749e69989..000000000 --- a/linux/atlassian/jira/8/8.10.0/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.10.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.10.0/Makefile b/linux/atlassian/jira/8/8.10.0/Makefile deleted file mode 100644 index 8a1664cc8..000000000 --- a/linux/atlassian/jira/8/8.10.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.10.0 . - docker push epicmorg/jira:8.10.0 diff --git a/linux/atlassian/jira/8/8.10.0/README.md b/linux/atlassian/jira/8/8.10.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.10.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.10.1/Dockerfile b/linux/atlassian/jira/8/8.10.1/Dockerfile deleted file mode 100644 index 1d1caa3dd..000000000 --- a/linux/atlassian/jira/8/8.10.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.10.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.10.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.10.1/Dockerfile.jdk11 deleted file mode 100644 index e1a049974..000000000 --- a/linux/atlassian/jira/8/8.10.1/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.10.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.10.1/Makefile b/linux/atlassian/jira/8/8.10.1/Makefile deleted file mode 100644 index 9d19a683c..000000000 --- a/linux/atlassian/jira/8/8.10.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.10.1 . - docker push epicmorg/jira:8.10.1 diff --git a/linux/atlassian/jira/8/8.10.1/README.md b/linux/atlassian/jira/8/8.10.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.10.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.11.0/Dockerfile b/linux/atlassian/jira/8/8.11.0/Dockerfile deleted file mode 100644 index ec0717a0a..000000000 --- a/linux/atlassian/jira/8/8.11.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.11.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.11.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.11.0/Dockerfile.jdk11 deleted file mode 100644 index 9687567d2..000000000 --- a/linux/atlassian/jira/8/8.11.0/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.11.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.11.0/Makefile b/linux/atlassian/jira/8/8.11.0/Makefile deleted file mode 100644 index 223d48205..000000000 --- a/linux/atlassian/jira/8/8.11.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.11.0 . - docker push epicmorg/jira:8.11.0 diff --git a/linux/atlassian/jira/8/8.11.0/README.md b/linux/atlassian/jira/8/8.11.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.11.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.11.1/Dockerfile b/linux/atlassian/jira/8/8.11.1/Dockerfile deleted file mode 100644 index 7f4b03a70..000000000 --- a/linux/atlassian/jira/8/8.11.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.11.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.11.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.11.1/Dockerfile.jdk11 deleted file mode 100644 index 1c3aa37b9..000000000 --- a/linux/atlassian/jira/8/8.11.1/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.11.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.11.1/Makefile b/linux/atlassian/jira/8/8.11.1/Makefile deleted file mode 100644 index d45d787ae..000000000 --- a/linux/atlassian/jira/8/8.11.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.11.1 . - docker push epicmorg/jira:8.11.1 diff --git a/linux/atlassian/jira/8/8.11.1/README.md b/linux/atlassian/jira/8/8.11.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.11.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.12.0/Dockerfile b/linux/atlassian/jira/8/8.12.0/Dockerfile deleted file mode 100644 index ec4db21c6..000000000 --- a/linux/atlassian/jira/8/8.12.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.12.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.12.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.12.0/Dockerfile.jdk11 deleted file mode 100644 index caea525f8..000000000 --- a/linux/atlassian/jira/8/8.12.0/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.12.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.12.0/Makefile b/linux/atlassian/jira/8/8.12.0/Makefile deleted file mode 100644 index 16e4fa587..000000000 --- a/linux/atlassian/jira/8/8.12.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.12.0 . - docker push epicmorg/jira:8.12.0 diff --git a/linux/atlassian/jira/8/8.12.0/README.md b/linux/atlassian/jira/8/8.12.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.12.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.12.1/Dockerfile b/linux/atlassian/jira/8/8.12.1/Dockerfile deleted file mode 100644 index 2dc9c95ab..000000000 --- a/linux/atlassian/jira/8/8.12.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.12.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.12.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.12.1/Dockerfile.jdk11 deleted file mode 100644 index 328e36818..000000000 --- a/linux/atlassian/jira/8/8.12.1/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.12.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.12.1/Makefile b/linux/atlassian/jira/8/8.12.1/Makefile deleted file mode 100644 index 16e4fa587..000000000 --- a/linux/atlassian/jira/8/8.12.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.12.0 . - docker push epicmorg/jira:8.12.0 diff --git a/linux/atlassian/jira/8/8.12.1/README.md b/linux/atlassian/jira/8/8.12.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.12.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.2.0/Dockerfile b/linux/atlassian/jira/8/8.2.0/Dockerfile deleted file mode 100644 index 53e0b84be..000000000 --- a/linux/atlassian/jira/8/8.2.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.2.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.2.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.2.0/Dockerfile.jdk11 deleted file mode 100644 index 6bab33843..000000000 --- a/linux/atlassian/jira/8/8.2.0/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.2.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.2.0/Makefile b/linux/atlassian/jira/8/8.2.0/Makefile deleted file mode 100644 index 6430df6d3..000000000 --- a/linux/atlassian/jira/8/8.2.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.2.0 . diff --git a/linux/atlassian/jira/8/8.2.0/README.md b/linux/atlassian/jira/8/8.2.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.2.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.2.1/Dockerfile b/linux/atlassian/jira/8/8.2.1/Dockerfile deleted file mode 100644 index 2bcd39287..000000000 --- a/linux/atlassian/jira/8/8.2.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.2.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.2.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.2.1/Dockerfile.jdk11 deleted file mode 100644 index f1dc5bd51..000000000 --- a/linux/atlassian/jira/8/8.2.1/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.2.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.2.1/Makefile b/linux/atlassian/jira/8/8.2.1/Makefile deleted file mode 100644 index 20d6118ee..000000000 --- a/linux/atlassian/jira/8/8.2.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.2.1 . diff --git a/linux/atlassian/jira/8/8.2.1/README.md b/linux/atlassian/jira/8/8.2.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.2.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.2.2/Dockerfile b/linux/atlassian/jira/8/8.2.2/Dockerfile deleted file mode 100644 index 1ad98368d..000000000 --- a/linux/atlassian/jira/8/8.2.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.2.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.2.2/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.2.2/Dockerfile.jdk11 deleted file mode 100644 index eb09f592e..000000000 --- a/linux/atlassian/jira/8/8.2.2/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.2.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.2.2/Makefile b/linux/atlassian/jira/8/8.2.2/Makefile deleted file mode 100644 index 4ed1126fa..000000000 --- a/linux/atlassian/jira/8/8.2.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.2.2 . diff --git a/linux/atlassian/jira/8/8.2.2/README.md b/linux/atlassian/jira/8/8.2.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.2.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.2.3/Dockerfile b/linux/atlassian/jira/8/8.2.3/Dockerfile deleted file mode 100644 index 7b22fae69..000000000 --- a/linux/atlassian/jira/8/8.2.3/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.2.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.2.3/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.2.3/Dockerfile.jdk11 deleted file mode 100644 index 5d85db334..000000000 --- a/linux/atlassian/jira/8/8.2.3/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.2.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.2.3/Makefile b/linux/atlassian/jira/8/8.2.3/Makefile deleted file mode 100644 index a0971b5ed..000000000 --- a/linux/atlassian/jira/8/8.2.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.2.3 . diff --git a/linux/atlassian/jira/8/8.2.3/README.md b/linux/atlassian/jira/8/8.2.3/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.2.3/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.2.4/Dockerfile b/linux/atlassian/jira/8/8.2.4/Dockerfile deleted file mode 100644 index bb0bf7d45..000000000 --- a/linux/atlassian/jira/8/8.2.4/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.2.4 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.2.4/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.2.4/Dockerfile.jdk11 deleted file mode 100644 index fe86295f7..000000000 --- a/linux/atlassian/jira/8/8.2.4/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.2.4 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.2.4/Makefile b/linux/atlassian/jira/8/8.2.4/Makefile deleted file mode 100644 index ecfb821c9..000000000 --- a/linux/atlassian/jira/8/8.2.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.2.4 . diff --git a/linux/atlassian/jira/8/8.2.4/README.md b/linux/atlassian/jira/8/8.2.4/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.2.4/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.2.5/Dockerfile b/linux/atlassian/jira/8/8.2.5/Dockerfile deleted file mode 100644 index 2f741b295..000000000 --- a/linux/atlassian/jira/8/8.2.5/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.2.5 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.2.5/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.2.5/Dockerfile.jdk11 deleted file mode 100644 index d6498ec49..000000000 --- a/linux/atlassian/jira/8/8.2.5/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.2.5 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.2.5/Makefile b/linux/atlassian/jira/8/8.2.5/Makefile deleted file mode 100644 index 3cbc72272..000000000 --- a/linux/atlassian/jira/8/8.2.5/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.2.5 . diff --git a/linux/atlassian/jira/8/8.2.5/README.md b/linux/atlassian/jira/8/8.2.5/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.2.5/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.2.6/Dockerfile b/linux/atlassian/jira/8/8.2.6/Dockerfile deleted file mode 100644 index 6c52750a8..000000000 --- a/linux/atlassian/jira/8/8.2.6/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.2.6 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.2.6/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.2.6/Dockerfile.jdk11 deleted file mode 100644 index 74207d383..000000000 --- a/linux/atlassian/jira/8/8.2.6/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.2.6 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.2.6/Makefile b/linux/atlassian/jira/8/8.2.6/Makefile deleted file mode 100644 index f4ed77086..000000000 --- a/linux/atlassian/jira/8/8.2.6/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.2.6 . diff --git a/linux/atlassian/jira/8/8.2.6/README.md b/linux/atlassian/jira/8/8.2.6/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.2.6/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.3.0/Dockerfile b/linux/atlassian/jira/8/8.3.0/Dockerfile deleted file mode 100644 index 6918c3f1f..000000000 --- a/linux/atlassian/jira/8/8.3.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.3.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.3.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.3.0/Dockerfile.jdk11 deleted file mode 100644 index 510cccac8..000000000 --- a/linux/atlassian/jira/8/8.3.0/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.3.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.3.0/Makefile b/linux/atlassian/jira/8/8.3.0/Makefile deleted file mode 100644 index 72bad8d70..000000000 --- a/linux/atlassian/jira/8/8.3.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.3.0 . diff --git a/linux/atlassian/jira/8/8.3.0/README.md b/linux/atlassian/jira/8/8.3.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.3.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.3.1/Dockerfile b/linux/atlassian/jira/8/8.3.1/Dockerfile deleted file mode 100644 index 45123d298..000000000 --- a/linux/atlassian/jira/8/8.3.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.3.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.3.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.3.1/Dockerfile.jdk11 deleted file mode 100644 index ba2aaf577..000000000 --- a/linux/atlassian/jira/8/8.3.1/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.3.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.3.1/Makefile b/linux/atlassian/jira/8/8.3.1/Makefile deleted file mode 100644 index c2f6fb33a..000000000 --- a/linux/atlassian/jira/8/8.3.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.3.1 . diff --git a/linux/atlassian/jira/8/8.3.1/README.md b/linux/atlassian/jira/8/8.3.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.3.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.3.2/Dockerfile b/linux/atlassian/jira/8/8.3.2/Dockerfile deleted file mode 100644 index 8ef1bc261..000000000 --- a/linux/atlassian/jira/8/8.3.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.3.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.3.2/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.3.2/Dockerfile.jdk11 deleted file mode 100644 index 23d3e6fd8..000000000 --- a/linux/atlassian/jira/8/8.3.2/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.3.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.3.2/Makefile b/linux/atlassian/jira/8/8.3.2/Makefile deleted file mode 100644 index 172eec6e5..000000000 --- a/linux/atlassian/jira/8/8.3.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.3.2 . diff --git a/linux/atlassian/jira/8/8.3.2/README.md b/linux/atlassian/jira/8/8.3.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.3.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.3.3/Dockerfile b/linux/atlassian/jira/8/8.3.3/Dockerfile deleted file mode 100644 index 55ec899e1..000000000 --- a/linux/atlassian/jira/8/8.3.3/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.3.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.3.3/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.3.3/Dockerfile.jdk11 deleted file mode 100644 index 2ad7f24b0..000000000 --- a/linux/atlassian/jira/8/8.3.3/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.3.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.3.3/Makefile b/linux/atlassian/jira/8/8.3.3/Makefile deleted file mode 100644 index 0adece15c..000000000 --- a/linux/atlassian/jira/8/8.3.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.3.3 . diff --git a/linux/atlassian/jira/8/8.3.3/README.md b/linux/atlassian/jira/8/8.3.3/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.3.3/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.3.4/Dockerfile b/linux/atlassian/jira/8/8.3.4/Dockerfile deleted file mode 100644 index 3bd48bf31..000000000 --- a/linux/atlassian/jira/8/8.3.4/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.3.4 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.3.4/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.3.4/Dockerfile.jdk11 deleted file mode 100644 index cb9199c1e..000000000 --- a/linux/atlassian/jira/8/8.3.4/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.3.4 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.3.4/Makefile b/linux/atlassian/jira/8/8.3.4/Makefile deleted file mode 100644 index 574b3a88e..000000000 --- a/linux/atlassian/jira/8/8.3.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.3.4 . diff --git a/linux/atlassian/jira/8/8.3.4/README.md b/linux/atlassian/jira/8/8.3.4/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.3.4/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.3.5/Dockerfile b/linux/atlassian/jira/8/8.3.5/Dockerfile deleted file mode 100644 index 6e2cdb970..000000000 --- a/linux/atlassian/jira/8/8.3.5/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.3.5 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.3.5/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.3.5/Dockerfile.jdk11 deleted file mode 100644 index 40f571e6f..000000000 --- a/linux/atlassian/jira/8/8.3.5/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.3.5 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.3.5/Makefile b/linux/atlassian/jira/8/8.3.5/Makefile deleted file mode 100644 index b97785a03..000000000 --- a/linux/atlassian/jira/8/8.3.5/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.3.5 . diff --git a/linux/atlassian/jira/8/8.3.5/README.md b/linux/atlassian/jira/8/8.3.5/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.3.5/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.4.0/Dockerfile b/linux/atlassian/jira/8/8.4.0/Dockerfile deleted file mode 100644 index b4d523351..000000000 --- a/linux/atlassian/jira/8/8.4.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.4.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.4.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.4.0/Dockerfile.jdk11 deleted file mode 100644 index 575fdcbd3..000000000 --- a/linux/atlassian/jira/8/8.4.0/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.4.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.4.0/Makefile b/linux/atlassian/jira/8/8.4.0/Makefile deleted file mode 100644 index 67e871ef6..000000000 --- a/linux/atlassian/jira/8/8.4.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.4.0 . diff --git a/linux/atlassian/jira/8/8.4.0/README.md b/linux/atlassian/jira/8/8.4.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.4.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.4.1/Dockerfile b/linux/atlassian/jira/8/8.4.1/Dockerfile deleted file mode 100644 index 901adc69e..000000000 --- a/linux/atlassian/jira/8/8.4.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.4.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.4.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.4.1/Dockerfile.jdk11 deleted file mode 100644 index a0be846db..000000000 --- a/linux/atlassian/jira/8/8.4.1/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.4.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.4.1/Makefile b/linux/atlassian/jira/8/8.4.1/Makefile deleted file mode 100644 index c17e33929..000000000 --- a/linux/atlassian/jira/8/8.4.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.4.1 . diff --git a/linux/atlassian/jira/8/8.4.1/README.md b/linux/atlassian/jira/8/8.4.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.4.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.4.2/Dockerfile b/linux/atlassian/jira/8/8.4.2/Dockerfile deleted file mode 100644 index 2497ee702..000000000 --- a/linux/atlassian/jira/8/8.4.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.4.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.4.2/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.4.2/Dockerfile.jdk11 deleted file mode 100644 index b39613392..000000000 --- a/linux/atlassian/jira/8/8.4.2/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.4.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.4.2/Makefile b/linux/atlassian/jira/8/8.4.2/Makefile deleted file mode 100644 index f306219ff..000000000 --- a/linux/atlassian/jira/8/8.4.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.4.2 . diff --git a/linux/atlassian/jira/8/8.4.2/README.md b/linux/atlassian/jira/8/8.4.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.4.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.4.3/Dockerfile b/linux/atlassian/jira/8/8.4.3/Dockerfile deleted file mode 100644 index 52f582346..000000000 --- a/linux/atlassian/jira/8/8.4.3/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.4.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.4.3/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.4.3/Dockerfile.jdk11 deleted file mode 100644 index d76d43725..000000000 --- a/linux/atlassian/jira/8/8.4.3/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.4.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.4.3/Makefile b/linux/atlassian/jira/8/8.4.3/Makefile deleted file mode 100644 index e7fd13f05..000000000 --- a/linux/atlassian/jira/8/8.4.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.4.3 . diff --git a/linux/atlassian/jira/8/8.4.3/README.md b/linux/atlassian/jira/8/8.4.3/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.4.3/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.5.0/Dockerfile b/linux/atlassian/jira/8/8.5.0/Dockerfile deleted file mode 100644 index 3899c4039..000000000 --- a/linux/atlassian/jira/8/8.5.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.5.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.5.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.0/Dockerfile.jdk11 deleted file mode 100644 index f43659f70..000000000 --- a/linux/atlassian/jira/8/8.5.0/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.5.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.5.0/Makefile b/linux/atlassian/jira/8/8.5.0/Makefile deleted file mode 100644 index 54f206019..000000000 --- a/linux/atlassian/jira/8/8.5.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.5.0 . diff --git a/linux/atlassian/jira/8/8.5.0/README.md b/linux/atlassian/jira/8/8.5.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.5.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.5.1/Dockerfile b/linux/atlassian/jira/8/8.5.1/Dockerfile deleted file mode 100644 index b7aba9776..000000000 --- a/linux/atlassian/jira/8/8.5.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.5.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.5.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.1/Dockerfile.jdk11 deleted file mode 100644 index c03ba4349..000000000 --- a/linux/atlassian/jira/8/8.5.1/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.5.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.5.1/Makefile b/linux/atlassian/jira/8/8.5.1/Makefile deleted file mode 100644 index 128178b1b..000000000 --- a/linux/atlassian/jira/8/8.5.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.5.1 . diff --git a/linux/atlassian/jira/8/8.5.1/README.md b/linux/atlassian/jira/8/8.5.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.5.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.5.2/Dockerfile b/linux/atlassian/jira/8/8.5.2/Dockerfile deleted file mode 100644 index 4f9d13f41..000000000 --- a/linux/atlassian/jira/8/8.5.2/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.5.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.5.2/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.2/Dockerfile.jdk11 deleted file mode 100644 index b58a1df0f..000000000 --- a/linux/atlassian/jira/8/8.5.2/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.5.2 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.5.2/Makefile b/linux/atlassian/jira/8/8.5.2/Makefile deleted file mode 100644 index c230d45b7..000000000 --- a/linux/atlassian/jira/8/8.5.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.5.2 . diff --git a/linux/atlassian/jira/8/8.5.2/README.md b/linux/atlassian/jira/8/8.5.2/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.5.2/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.5.3/Dockerfile b/linux/atlassian/jira/8/8.5.3/Dockerfile deleted file mode 100644 index 03d935dfa..000000000 --- a/linux/atlassian/jira/8/8.5.3/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.5.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.5.3/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.3/Dockerfile.jdk11 deleted file mode 100644 index 30bc99420..000000000 --- a/linux/atlassian/jira/8/8.5.3/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.5.3 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.5.3/Makefile b/linux/atlassian/jira/8/8.5.3/Makefile deleted file mode 100644 index 431d0ee96..000000000 --- a/linux/atlassian/jira/8/8.5.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.5.3 . diff --git a/linux/atlassian/jira/8/8.5.3/README.md b/linux/atlassian/jira/8/8.5.3/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.5.3/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.6.0/Dockerfile b/linux/atlassian/jira/8/8.6.0/Dockerfile deleted file mode 100644 index 94f8835dc..000000000 --- a/linux/atlassian/jira/8/8.6.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.6.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.6.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.6.0/Dockerfile.jdk11 deleted file mode 100644 index be0f685fb..000000000 --- a/linux/atlassian/jira/8/8.6.0/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.6.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.6.0/Makefile b/linux/atlassian/jira/8/8.6.0/Makefile deleted file mode 100644 index 3e5773d79..000000000 --- a/linux/atlassian/jira/8/8.6.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.6.0 . diff --git a/linux/atlassian/jira/8/8.6.0/README.md b/linux/atlassian/jira/8/8.6.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.6.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.6.1/Dockerfile b/linux/atlassian/jira/8/8.6.1/Dockerfile deleted file mode 100644 index 947578d9a..000000000 --- a/linux/atlassian/jira/8/8.6.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.6.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.6.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.6.1/Dockerfile.jdk11 deleted file mode 100644 index 6902e4045..000000000 --- a/linux/atlassian/jira/8/8.6.1/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.6.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.6.1/Makefile b/linux/atlassian/jira/8/8.6.1/Makefile deleted file mode 100644 index e4bb61905..000000000 --- a/linux/atlassian/jira/8/8.6.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.6.1 . diff --git a/linux/atlassian/jira/8/8.6.1/README.md b/linux/atlassian/jira/8/8.6.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.6.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.7.0/Dockerfile b/linux/atlassian/jira/8/8.7.0/Dockerfile deleted file mode 100644 index 7fd6d5251..000000000 --- a/linux/atlassian/jira/8/8.7.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.7.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.7.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.7.0/Dockerfile.jdk11 deleted file mode 100644 index 0c61c2e3c..000000000 --- a/linux/atlassian/jira/8/8.7.0/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.7.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.7.0/Makefile b/linux/atlassian/jira/8/8.7.0/Makefile deleted file mode 100644 index c11f144f4..000000000 --- a/linux/atlassian/jira/8/8.7.0/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.7.0 . diff --git a/linux/atlassian/jira/8/8.7.0/README.md b/linux/atlassian/jira/8/8.7.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.7.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.7.1/Dockerfile b/linux/atlassian/jira/8/8.7.1/Dockerfile deleted file mode 100644 index 9460cf4cf..000000000 --- a/linux/atlassian/jira/8/8.7.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.7.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.7.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.7.1/Dockerfile.jdk11 deleted file mode 100644 index 899c05e47..000000000 --- a/linux/atlassian/jira/8/8.7.1/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.7.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.7.1/Makefile b/linux/atlassian/jira/8/8.7.1/Makefile deleted file mode 100644 index cc8c8ad31..000000000 --- a/linux/atlassian/jira/8/8.7.1/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.7.1 . diff --git a/linux/atlassian/jira/8/8.7.1/README.md b/linux/atlassian/jira/8/8.7.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.7.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.8.0/Dockerfile b/linux/atlassian/jira/8/8.8.0/Dockerfile deleted file mode 100644 index 96c25c627..000000000 --- a/linux/atlassian/jira/8/8.8.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.8.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.8.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.8.0/Dockerfile.jdk11 deleted file mode 100644 index f444bdf75..000000000 --- a/linux/atlassian/jira/8/8.8.0/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.8.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.8.0/Makefile b/linux/atlassian/jira/8/8.8.0/Makefile deleted file mode 100644 index 461ea8958..000000000 --- a/linux/atlassian/jira/8/8.8.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.8.0 . - docker push epicmorg/jira:8.8.0 diff --git a/linux/atlassian/jira/8/8.8.0/README.md b/linux/atlassian/jira/8/8.8.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.8.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.8.1/Dockerfile b/linux/atlassian/jira/8/8.8.1/Dockerfile deleted file mode 100644 index 53e799ad5..000000000 --- a/linux/atlassian/jira/8/8.8.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.8.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.8.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.8.1/Dockerfile.jdk11 deleted file mode 100644 index 98f39d3ea..000000000 --- a/linux/atlassian/jira/8/8.8.1/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.8.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.8.1/Makefile b/linux/atlassian/jira/8/8.8.1/Makefile deleted file mode 100644 index d6531a3e1..000000000 --- a/linux/atlassian/jira/8/8.8.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.8.1 . - docker push epicmorg/jira:8.8.1 diff --git a/linux/atlassian/jira/8/8.8.1/README.md b/linux/atlassian/jira/8/8.8.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.8.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.9.0/Dockerfile b/linux/atlassian/jira/8/8.9.0/Dockerfile deleted file mode 100644 index c147ed0bd..000000000 --- a/linux/atlassian/jira/8/8.9.0/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.9.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.9.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.9.0/Dockerfile.jdk11 deleted file mode 100644 index 1101a0ab7..000000000 --- a/linux/atlassian/jira/8/8.9.0/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.9.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.9.0/Makefile b/linux/atlassian/jira/8/8.9.0/Makefile deleted file mode 100644 index 83858496b..000000000 --- a/linux/atlassian/jira/8/8.9.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.9.0 . - docker push epicmorg/jira:8.9.0 diff --git a/linux/atlassian/jira/8/8.9.0/README.md b/linux/atlassian/jira/8/8.9.0/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.9.0/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/8.9.1/Dockerfile b/linux/atlassian/jira/8/8.9.1/Dockerfile deleted file mode 100644 index 18826bccf..000000000 --- a/linux/atlassian/jira/8/8.9.1/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.9.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.9.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.9.1/Dockerfile.jdk11 deleted file mode 100644 index c1c5d4a35..000000000 --- a/linux/atlassian/jira/8/8.9.1/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.9.1 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/8/8.9.1/Makefile b/linux/atlassian/jira/8/8.9.1/Makefile deleted file mode 100644 index 41be07a4e..000000000 --- a/linux/atlassian/jira/8/8.9.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira:8.9.1 . - docker push epicmorg/jira:8.9.1 diff --git a/linux/atlassian/jira/8/8.9.1/README.md b/linux/atlassian/jira/8/8.9.1/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/8/8.9.1/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/atlassian/jira/8/README.md b/linux/atlassian/jira/8/README.md deleted file mode 100644 index 779da3211..000000000 --- a/linux/atlassian/jira/8/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Atlassian Enterprise releases -## Build info - -All presented images avalible on our repo in docker hub. - -------- - -*Some old versions of Jira may fail health check with [AdoptOpenJDK](https://github.com/AdoptOpenJDK) (open source, prebuilt OpenJDK binaries). But it will be works.* \ No newline at end of file diff --git a/linux/atlassian/jira/README.md b/linux/atlassian/jira/README.md deleted file mode 100644 index 2fdf04b8e..000000000 --- a/linux/atlassian/jira/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Atlassian Enterprise releases -## Build info - -All presented images avalible on our repo in docker hub. - -## LTS releases: -* Latest version of `Jira 8` branch is `8.5.3` - * Older version of `Jira 8` branch is `8.5.0` -* Latest version of `Jira 7` branch is `7.13.11` - * Older version of `Jira 7` branch is `7.6.17` - -------- - -*Some old versions of Jira may fail health check with [AdoptOpenJDK](https://github.com/AdoptOpenJDK) (open source, prebuilt OpenJDK binaries). But it will be works.* \ No newline at end of file diff --git a/linux/atlassian/jira/latest/Dockerfile b/linux/atlassian/jira/latest/Dockerfile deleted file mode 100644 index e6aec1787..000000000 --- a/linux/atlassian/jira/latest/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM epicmorg/prod:jdk8 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.16.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/latest/Dockerfile.jdk11 b/linux/atlassian/jira/latest/Dockerfile.jdk11 deleted file mode 100644 index 90846ef5a..000000000 --- a/linux/atlassian/jira/latest/Dockerfile.jdk11 +++ /dev/null @@ -1,47 +0,0 @@ -FROM epicmorg/prod:jdk11 -LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ARG JIRA_VERSION=8.16.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz - -################################################################## -# Setup -################################################################## -ENV RUN_USER daemon -ENV RUN_GROUP daemon - -# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files -ENV JIRA_HOME /var/atlassian/application-data/jira -ENV JIRA_INSTALL_DIR /opt/atlassian/jira - -VOLUME ["${JIRA_HOME}"] -WORKDIR $JIRA_HOME - -# Expose HTTP port -EXPOSE 8080 - -################################################################## -# Installing -################################################################## -RUN mkdir -p ${JIRA_INSTALL_DIR} \ - && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ - && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ - && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ - && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD ["/entrypoint.sh", "-fg"] -ENTRYPOINT ["/usr/bin/tini", "--"] -COPY entrypoint.sh /entrypoint.sh -COPY . /tmp diff --git a/linux/atlassian/jira/latest/Makefile b/linux/atlassian/jira/latest/Makefile deleted file mode 100644 index 85c8a1f2c..000000000 --- a/linux/atlassian/jira/latest/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: jr - -jr: - docker build --compress -t epicmorg/jira . - docker push epicmorg/jira \ No newline at end of file diff --git a/linux/atlassian/jira/latest/README.md b/linux/atlassian/jira/latest/README.md deleted file mode 100644 index 4cab96ead..000000000 --- a/linux/atlassian/jira/latest/README.md +++ /dev/null @@ -1,151 +0,0 @@ -![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) - -JIRA Software is a software development tool used by agile teams. - -Learn more about JIRA Software: - -# Overview - -This Docker container makes it easy to get an instance of JIRA Software up and running. - -# Quick Start - -For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. - -To get started you can use a data volume, or named volumes. In this example we'll use named volumes. - - $> docker volume create --name jiraVolume - $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - - -**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* - -Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. - - -_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ - -## Memory / Heap Size - -If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. - -* `JVM_MINIMUM_MEMORY` (default: 384m) - - The minimum heap size of the JVM - -* `JVM_MAXIMUM_MEMORY` (default: 768m) - - The maximum heap size of the JVM - -## Reverse Proxy Settings - -If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. - -* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) - - The reverse proxy's fully qualified hostname. - -* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) - - The reverse proxy's port number via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SCHEME` (default: http) - - The protocol via which JIRA is accessed. - -* `CATALINA_CONNECTOR_SECURE` (default: false) - - Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. - -## JVM configuration - -If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable - -* `JVM_SUPPORT_RECOMMENDED_ARGS` - - Additional JVM arguments for JIRA - -Example: - - $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira - -## Data Center configuration - -This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. - -* `CLUSTERED` (default: false) - - Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. - -* `JIRA_NODE_ID` (default: jira_node_) - - The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. - -* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) - - The location of the shared home directory for all Jira nodes. - -* `EHCACHE_PEER_DISCOVERY` (default: default) - - Describes how nodes find each other. - -* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) - - The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. - -* `EHCACHE_LISTENER_PORT` (default: 40001) - - The port the node is going to be listening to. - -* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) - - The default timeout for the Ehcache listener. - -* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) - - A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_PORT` (default: NONE) - - The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) - - A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) - - The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. - -# Upgrade - -To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: - - $> docker stop jira - $> docker rm jira - $> docker run ... (See above) - -As your data is stored in the data volume directory on the host it will still be available after the upgrade. - -_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ - -# Backup - -For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. - -If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. - -Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) - -# Versioning - -The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. - -## Versions available - -* `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` - -# Support - -This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/ecosystem/apache2/latest/Dockerfile b/linux/ecosystem/apache2/latest/Dockerfile new file mode 100644 index 000000000..c7a49b75e --- /dev/null +++ b/linux/ecosystem/apache2/latest/Dockerfile @@ -0,0 +1,105 @@ +FROM epicmorg/php:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 +ARG PHP_VER=7.4 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini + +################################################################## +# Installing Apache2 +################################################################## +#installing apache2 repo +RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + apache2 \ + apache2-utils \ + libapache2-mod-php7.4 \ + libapache2-mod-webauth \ + libapache2-mod-xforward \ + libapache2-mod-security2 && \ + a2enmod \ + php7.4 \ + rewrite \ + ldap \ + heartmonitor \ + auth_basic \ + authnz_ldap \ + headers \ + heartbeat \ + lua \ + mime \ + status \ + xml2enc \ + xforward \ + remoteip \ + filter \ + dav \ + dav_fs \ + alias && \ + ln -sf /etc/ssl/dhparam.pem /etc/apache2/dhparam.pem && \ + php -m && \ + php -v + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +################################################################## +# Installing IOnCube addon +################################################################## +RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +RUN ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +RUN ln -sf ${SMB_PHP_INI} ${PHP_DIR}/apache2/conf.d/smbclient.ini && \ + php -m && \ + php -v + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + +#volumes +VOLUME ["/var/www"] + +# Add image configuration and scripts +COPY run.sh /run.sh +RUN chmod 755 /*.sh + +# Configure application +EXPOSE 80 +WORKDIR /var/www/ +CMD ["/run.sh"] diff --git a/linux/ecosystem/apache2/latest/Makefile b/linux/ecosystem/apache2/latest/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/apache2/latest/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/apache2/latest/README.md b/linux/ecosystem/apache2/latest/README.md similarity index 100% rename from linux/apache2/latest/README.md rename to linux/ecosystem/apache2/latest/README.md diff --git a/linux/ecosystem/apache2/latest/docker-compose.yml b/linux/ecosystem/apache2/latest/docker-compose.yml new file mode 100644 index 000000000..99eebbfd1 --- /dev/null +++ b/linux/ecosystem/apache2/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/apache2:latest" + build: + context: . diff --git a/linux/apache2/latest/run.sh b/linux/ecosystem/apache2/latest/run.sh similarity index 100% rename from linux/apache2/latest/run.sh rename to linux/ecosystem/apache2/latest/run.sh diff --git a/linux/ecosystem/apache2/php7.2/Dockerfile b/linux/ecosystem/apache2/php7.2/Dockerfile new file mode 100644 index 000000000..d653289ec --- /dev/null +++ b/linux/ecosystem/apache2/php7.2/Dockerfile @@ -0,0 +1,98 @@ +FROM epicmorg/php:php7.2 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_MODULE_PATH=/usr/lib/php/20170718 +ARG PHP_VER=7.2 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini + +################################################################## +# Installing Apache2 +################################################################## +#installing apache2 repo +RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + apache2 \ + apache2-utils \ + libapache2-mod-php7.2 \ + libapache2-mod-webauth \ + libapache2-mod-xforward \ + libapache2-mod-security2 \ + libmemcached-dev && \ + a2enmod \ + php7.2 \ + rewrite \ + ldap \ + heartmonitor \ + auth_basic \ + authnz_ldap \ + headers \ + heartbeat \ + lua \ + mime \ + status \ + xml2enc \ + xforward \ + remoteip \ + filter \ + dav \ + dav_fs \ + alias && \ + ln -sf /etc/ssl/dhparam.pem /etc/apache2/dhparam.pem && \ + php -m && \ + php -v + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +################################################################## +# Installing IOnCube addon +################################################################## +RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +RUN ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + +#volumes +VOLUME ["/var/www"] + +# Add image configuration and scripts +COPY run.sh /run.sh +RUN chmod 755 /*.sh + +# Configure application +EXPOSE 80 +WORKDIR /var/www/ +CMD ["/run.sh"] diff --git a/linux/ecosystem/apache2/php7.2/Makefile b/linux/ecosystem/apache2/php7.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/apache2/php7.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/apache2/php7.2/README.md b/linux/ecosystem/apache2/php7.2/README.md similarity index 100% rename from linux/apache2/php7.2/README.md rename to linux/ecosystem/apache2/php7.2/README.md diff --git a/linux/ecosystem/apache2/php7.2/docker-compose.yml b/linux/ecosystem/apache2/php7.2/docker-compose.yml new file mode 100644 index 000000000..332da33ab --- /dev/null +++ b/linux/ecosystem/apache2/php7.2/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/apache2:php7.2" + build: + context: . diff --git a/linux/apache2/php7.2/run.sh b/linux/ecosystem/apache2/php7.2/run.sh similarity index 100% rename from linux/apache2/php7.2/run.sh rename to linux/ecosystem/apache2/php7.2/run.sh diff --git a/linux/ecosystem/apache2/php7.3/Dockerfile b/linux/ecosystem/apache2/php7.3/Dockerfile new file mode 100644 index 000000000..4f71b5beb --- /dev/null +++ b/linux/ecosystem/apache2/php7.3/Dockerfile @@ -0,0 +1,98 @@ +FROM epicmorg/php:php7.3 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_MODULE_PATH=/usr/lib/php/20180731 +ARG PHP_VER=7.3 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini + +################################################################## +# Installing Apache2 +################################################################## +#installing apache2 repo +RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + apache2 \ + apache2-utils \ + libapache2-mod-php7.3 \ + libapache2-mod-webauth \ + libapache2-mod-xforward \ + libapache2-mod-security2 \ + libmemcached-dev && \ + a2enmod \ + php7.3 \ + rewrite \ + ldap \ + heartmonitor \ + auth_basic \ + authnz_ldap \ + headers \ + heartbeat \ + lua \ + mime \ + status \ + xml2enc \ + xforward \ + remoteip \ + filter \ + dav \ + dav_fs \ + alias && \ + ln -sf /etc/ssl/dhparam.pem /etc/apache2/dhparam.pem && \ + php -m && \ + php -v + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +################################################################## +# Installing IOnCube addon +################################################################## +RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + +#volumes +VOLUME ["/var/www"] + +# Add image configuration and scripts +COPY run.sh /run.sh +RUN chmod 755 /*.sh + +# Configure application +EXPOSE 80 +WORKDIR /var/www/ +CMD ["/run.sh"] diff --git a/linux/ecosystem/apache2/php7.3/Makefile b/linux/ecosystem/apache2/php7.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/apache2/php7.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/apache2/php7.3/README.md b/linux/ecosystem/apache2/php7.3/README.md similarity index 100% rename from linux/apache2/php7.3/README.md rename to linux/ecosystem/apache2/php7.3/README.md diff --git a/linux/ecosystem/apache2/php7.3/docker-compose.yml b/linux/ecosystem/apache2/php7.3/docker-compose.yml new file mode 100644 index 000000000..5b1f13f1f --- /dev/null +++ b/linux/ecosystem/apache2/php7.3/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/apache2:php7.3" + build: + context: . diff --git a/linux/apache2/php7.3/run.sh b/linux/ecosystem/apache2/php7.3/run.sh similarity index 100% rename from linux/apache2/php7.3/run.sh rename to linux/ecosystem/apache2/php7.3/run.sh diff --git a/linux/ecosystem/apache2/php7.4/Dockerfile b/linux/ecosystem/apache2/php7.4/Dockerfile new file mode 100644 index 000000000..c7a49b75e --- /dev/null +++ b/linux/ecosystem/apache2/php7.4/Dockerfile @@ -0,0 +1,105 @@ +FROM epicmorg/php:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 +ARG PHP_VER=7.4 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini + +################################################################## +# Installing Apache2 +################################################################## +#installing apache2 repo +RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + apache2 \ + apache2-utils \ + libapache2-mod-php7.4 \ + libapache2-mod-webauth \ + libapache2-mod-xforward \ + libapache2-mod-security2 && \ + a2enmod \ + php7.4 \ + rewrite \ + ldap \ + heartmonitor \ + auth_basic \ + authnz_ldap \ + headers \ + heartbeat \ + lua \ + mime \ + status \ + xml2enc \ + xforward \ + remoteip \ + filter \ + dav \ + dav_fs \ + alias && \ + ln -sf /etc/ssl/dhparam.pem /etc/apache2/dhparam.pem && \ + php -m && \ + php -v + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +################################################################## +# Installing IOnCube addon +################################################################## +RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +RUN ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +RUN ln -sf ${SMB_PHP_INI} ${PHP_DIR}/apache2/conf.d/smbclient.ini && \ + php -m && \ + php -v + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + +#volumes +VOLUME ["/var/www"] + +# Add image configuration and scripts +COPY run.sh /run.sh +RUN chmod 755 /*.sh + +# Configure application +EXPOSE 80 +WORKDIR /var/www/ +CMD ["/run.sh"] diff --git a/linux/ecosystem/apache2/php7.4/Makefile b/linux/ecosystem/apache2/php7.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/apache2/php7.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/apache2/php7.4/README.md b/linux/ecosystem/apache2/php7.4/README.md similarity index 100% rename from linux/apache2/php7.4/README.md rename to linux/ecosystem/apache2/php7.4/README.md diff --git a/linux/ecosystem/apache2/php7.4/docker-compose.yml b/linux/ecosystem/apache2/php7.4/docker-compose.yml new file mode 100644 index 000000000..e6723b69c --- /dev/null +++ b/linux/ecosystem/apache2/php7.4/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/apache2:php7.4" + build: + context: . diff --git a/linux/apache2/php7.4/run.sh b/linux/ecosystem/apache2/php7.4/run.sh similarity index 100% rename from linux/apache2/php7.4/run.sh rename to linux/ecosystem/apache2/php7.4/run.sh diff --git a/linux/atlassian/bitbucket/6/6.0.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.0.0/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.0/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.0/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.0.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.0.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.0.0/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.0.0/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.0.0/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.0/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.0/Makefile diff --git a/linux/atlassian/bitbucket/6/6.0.0/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.0.0/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.0/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.0.0/README.md diff --git a/linux/atlassian/bitbucket/6/6.0.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.0.0/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.0/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.0.0/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.0.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.0.1/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.1/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.1/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.0.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.0.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.0.1/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.0.1/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.0.1/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.1/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.1/Makefile diff --git a/linux/atlassian/bitbucket/6/6.0.1/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.0.1/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.1/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.0.1/README.md diff --git a/linux/atlassian/bitbucket/6/6.0.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.0.1/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.1/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.0.1/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.0.10/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.0.10/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.10/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.10/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.0.10/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.0.10/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.10/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.0.10/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.0.10/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.0.10/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.10/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.10/Makefile diff --git a/linux/atlassian/bitbucket/6/6.0.10/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.0.10/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.10/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.0.10/README.md diff --git a/linux/atlassian/bitbucket/6/6.0.10/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.0.10/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.10/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.0.10/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.0.11/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.0.11/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.11/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.11/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.0.11/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.0.11/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.11/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.0.11/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.0.11/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.0.11/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.11/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.11/Makefile diff --git a/linux/atlassian/bitbucket/6/6.0.11/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.0.11/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.11/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.0.11/README.md diff --git a/linux/atlassian/bitbucket/6/6.0.11/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.0.11/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.11/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.0.11/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.0.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.0.2/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.2/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.2/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.0.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.0.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.0.2/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.0.2/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.0.2/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.2/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.2/Makefile diff --git a/linux/atlassian/bitbucket/6/6.0.2/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.0.2/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.2/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.0.2/README.md diff --git a/linux/atlassian/bitbucket/6/6.0.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.2/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.0.2/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.0.3/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.0.3/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.3/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.3/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.0.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.0.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.0.3/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.0.3/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.0.3/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.3/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.3/Makefile diff --git a/linux/atlassian/bitbucket/6/6.0.3/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.0.3/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.3/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.0.3/README.md diff --git a/linux/atlassian/bitbucket/6/6.0.3/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.3/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.0.3/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.0.4/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.0.4/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.4/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.4/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.0.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.0.4/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.4/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.0.4/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.0.4/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.0.4/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.4/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.4/Makefile diff --git a/linux/atlassian/bitbucket/6/6.0.4/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.0.4/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.4/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.0.4/README.md diff --git a/linux/atlassian/bitbucket/6/6.0.4/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.0.4/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.4/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.0.4/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.0.5/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.0.5/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.5/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.5/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.0.5/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.0.5/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.5/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.0.5/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.0.5/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.0.5/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.5/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.5/Makefile diff --git a/linux/atlassian/bitbucket/6/6.0.5/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.0.5/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.5/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.0.5/README.md diff --git a/linux/atlassian/bitbucket/6/6.0.5/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.0.5/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.5/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.0.5/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.0.6/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.0.6/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.6/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.6/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.0.6/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.0.6/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.6/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.0.6/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.0.6/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.0.6/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.6/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.6/Makefile diff --git a/linux/atlassian/bitbucket/6/6.0.6/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.0.6/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.6/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.0.6/README.md diff --git a/linux/atlassian/bitbucket/6/6.0.6/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.0.6/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.6/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.0.6/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.0.7/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.0.7/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.7/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.7/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.0.7/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.0.7/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.7/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.0.7/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.0.7/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.0.7/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.7/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.7/Makefile diff --git a/linux/atlassian/bitbucket/6/6.0.7/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.0.7/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.7/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.0.7/README.md diff --git a/linux/atlassian/bitbucket/6/6.0.7/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.0.7/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.7/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.0.7/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.0.9/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.0.9/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.9/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.9/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.0.9/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.0.9/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.9/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.0.9/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.0.9/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.0.9/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.9/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.0.9/Makefile diff --git a/linux/atlassian/bitbucket/6/6.0.9/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.0.9/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.9/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.0.9/README.md diff --git a/linux/atlassian/bitbucket/6/6.0.9/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.0.9/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.0.9/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.0.9/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.1.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.1.0/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.0/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.0/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.1.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.1.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.1.0/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.1.0/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.1.0/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.0/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.0/Makefile diff --git a/linux/atlassian/bitbucket/6/6.1.0/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.1.0/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.0/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.1.0/README.md diff --git a/linux/atlassian/bitbucket/6/6.1.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.1.0/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.0/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.1.0/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.1.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.1.1/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.1/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.1/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.1.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.1.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.1.1/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.1.1/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.1.1/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.1/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.1/Makefile diff --git a/linux/atlassian/bitbucket/6/6.1.1/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.1.1/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.1/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.1.1/README.md diff --git a/linux/atlassian/bitbucket/6/6.1.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.1/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.1.1/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.1.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.1.2/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.2/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.2/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.1.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.1.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.1.2/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.1.2/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.1.2/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.2/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.2/Makefile diff --git a/linux/atlassian/bitbucket/6/6.1.2/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.1.2/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.2/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.1.2/README.md diff --git a/linux/atlassian/bitbucket/6/6.1.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.2/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.1.2/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.1.3/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.1.3/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.3/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.3/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.1.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.1.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.1.3/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.1.3/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.1.3/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.3/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.3/Makefile diff --git a/linux/atlassian/bitbucket/6/6.1.3/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.1.3/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.3/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.1.3/README.md diff --git a/linux/atlassian/bitbucket/6/6.1.3/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.1.3/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.3/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.1.3/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.1.4/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.1.4/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.4/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.4/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.1.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.1.4/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.4/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.1.4/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.1.4/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.1.4/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.4/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.4/Makefile diff --git a/linux/atlassian/bitbucket/6/6.1.4/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.1.4/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.4/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.1.4/README.md diff --git a/linux/atlassian/bitbucket/6/6.1.4/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.1.4/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.4/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.1.4/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.1.5/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.1.5/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.5/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.5/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.1.5/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.1.5/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.5/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.1.5/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.1.5/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.1.5/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.5/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.5/Makefile diff --git a/linux/atlassian/bitbucket/6/6.1.5/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.1.5/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.5/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.1.5/README.md diff --git a/linux/atlassian/bitbucket/6/6.1.5/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.1.5/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.5/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.1.5/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.1.6/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.1.6/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.6/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.6/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.1.6/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.1.6/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.6/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.1.6/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.1.6/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.1.6/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.6/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.6/Makefile diff --git a/linux/atlassian/bitbucket/6/6.1.6/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.1.6/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.6/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.1.6/README.md diff --git a/linux/atlassian/bitbucket/6/6.1.6/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.1.6/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.6/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.1.6/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.1.7/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.1.7/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.7/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.7/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.1.7/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.1.7/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.7/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.1.7/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.1.7/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.1.7/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.7/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.7/Makefile diff --git a/linux/atlassian/bitbucket/6/6.1.7/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.1.7/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.7/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.1.7/README.md diff --git a/linux/atlassian/bitbucket/6/6.1.7/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.1.7/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.7/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.1.7/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.1.8/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.1.8/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.8/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.8/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.1.8/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.1.8/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.8/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.1.8/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.1.8/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.1.8/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.8/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.8/Makefile diff --git a/linux/atlassian/bitbucket/6/6.1.8/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.1.8/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.8/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.1.8/README.md diff --git a/linux/atlassian/bitbucket/6/6.1.8/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.1.8/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.8/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.1.8/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.1.9/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.1.9/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.9/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.9/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.1.9/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.1.9/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.9/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.1.9/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.1.9/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.1.9/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.9/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.1.9/Makefile diff --git a/linux/atlassian/bitbucket/6/6.1.9/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.1.9/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.9/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.1.9/README.md diff --git a/linux/atlassian/bitbucket/6/6.1.9/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.1.9/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.1.9/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.1.9/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.10.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.10.0/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.0/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.10.0/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.10.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.10.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.10.0/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.10.0/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.10.0/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.0/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.10.0/Makefile diff --git a/linux/atlassian/bitbucket/6/6.10.0/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.10.0/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.0/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.10.0/README.md diff --git a/linux/atlassian/bitbucket/6/6.10.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.10.0/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.0/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.10.0/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.10.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.10.1/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.1/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.10.1/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.10.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.10.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.10.1/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.10.1/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.10.1/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.1/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.10.1/Makefile diff --git a/linux/atlassian/bitbucket/6/6.10.1/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.10.1/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.1/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.10.1/README.md diff --git a/linux/atlassian/bitbucket/6/6.10.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.10.1/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.1/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.10.1/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.10.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.10.2/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.2/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.10.2/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.10.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.10.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.10.2/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.10.2/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.10.2/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.2/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.10.2/Makefile diff --git a/linux/atlassian/bitbucket/6/6.10.2/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.10.2/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.2/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.10.2/README.md diff --git a/linux/atlassian/bitbucket/6/6.10.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.10.2/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.10.2/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.10.2/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.2.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.2.0/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.0/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.0/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.2.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.2.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.2.0/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.2.0/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.2.0/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.0/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.0/Makefile diff --git a/linux/atlassian/bitbucket/6/6.2.0/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.2.0/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.0/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.2.0/README.md diff --git a/linux/atlassian/bitbucket/6/6.2.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.2.0/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.0/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.2.0/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.2.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.2.1/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.1/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.1/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.2.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.2.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.2.1/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.2.1/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.2.1/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.1/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.1/Makefile diff --git a/linux/atlassian/bitbucket/6/6.2.1/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.2.1/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.1/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.2.1/README.md diff --git a/linux/atlassian/bitbucket/6/6.2.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.2.1/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.2.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.2.2/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.2/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.2/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.2.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.2.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.2.2/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.2.2/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.2.2/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.2/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.2/Makefile diff --git a/linux/atlassian/bitbucket/6/6.2.2/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.2.2/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.2/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.2.2/README.md diff --git a/linux/atlassian/bitbucket/6/6.2.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.2/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.2.2/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.2.3/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.2.3/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.3/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.3/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.2.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.2.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.2.3/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.2.3/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.2.3/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.3/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.3/Makefile diff --git a/linux/atlassian/bitbucket/6/6.2.3/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.2.3/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.3/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.2.3/README.md diff --git a/linux/atlassian/bitbucket/6/6.2.3/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.3/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.2.3/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.2.4/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.2.4/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.4/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.4/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.2.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.2.4/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.4/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.2.4/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.2.4/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.2.4/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.4/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.4/Makefile diff --git a/linux/atlassian/bitbucket/6/6.2.4/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.2.4/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.4/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.2.4/README.md diff --git a/linux/atlassian/bitbucket/6/6.2.4/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.2.4/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.4/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.2.4/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.2.5/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.2.5/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.5/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.5/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.2.5/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.2.5/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.5/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.2.5/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.2.5/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.2.5/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.5/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.5/Makefile diff --git a/linux/atlassian/bitbucket/6/6.2.5/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.2.5/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.5/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.2.5/README.md diff --git a/linux/atlassian/bitbucket/6/6.2.5/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.2.5/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.5/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.2.5/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.2.6/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.2.6/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.6/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.6/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.2.6/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.2.6/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.6/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.2.6/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.2.6/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.2.6/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.6/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.6/Makefile diff --git a/linux/atlassian/bitbucket/6/6.2.6/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.2.6/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.6/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.2.6/README.md diff --git a/linux/atlassian/bitbucket/6/6.2.6/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.2.6/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.6/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.2.6/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.2.7/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.2.7/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.7/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.7/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.2.7/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.2.7/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.7/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.2.7/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.2.7/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.2.7/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.7/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.2.7/Makefile diff --git a/linux/atlassian/bitbucket/6/6.2.7/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.2.7/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.7/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.2.7/README.md diff --git a/linux/atlassian/bitbucket/6/6.2.7/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.2.7/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.2.7/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.2.7/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.3.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.3.0/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.0/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.3.0/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.3.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.3.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.3.0/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.3.0/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.3.0/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.0/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.3.0/Makefile diff --git a/linux/atlassian/bitbucket/6/6.3.0/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.3.0/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.0/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.3.0/README.md diff --git a/linux/atlassian/bitbucket/6/6.3.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.3.0/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.0/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.3.0/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.3.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.3.1/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.1/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.3.1/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.3.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.3.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.3.1/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.3.1/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.3.1/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.1/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.3.1/Makefile diff --git a/linux/atlassian/bitbucket/6/6.3.1/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.3.1/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.1/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.3.1/README.md diff --git a/linux/atlassian/bitbucket/6/6.3.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.3.1/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.1/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.3.1/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.3.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.3.2/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.2/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.3.2/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.3.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.3.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.3.2/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.3.2/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.3.2/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.2/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.3.2/Makefile diff --git a/linux/atlassian/bitbucket/6/6.3.2/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.3.2/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.2/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.3.2/README.md diff --git a/linux/atlassian/bitbucket/6/6.3.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.3.2/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.2/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.3.2/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.3.3/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.3.3/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.3/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.3.3/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.3.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.3.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.3.3/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.3.3/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.3.3/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.3/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.3.3/Makefile diff --git a/linux/atlassian/bitbucket/6/6.3.3/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.3.3/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.3/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.3.3/README.md diff --git a/linux/atlassian/bitbucket/6/6.3.3/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.3.3/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.3/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.3.3/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.3.4/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.3.4/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.4/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.3.4/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.3.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.3.4/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.4/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.3.4/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.3.4/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.3.4/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.4/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.3.4/Makefile diff --git a/linux/atlassian/bitbucket/6/6.3.4/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.3.4/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.4/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.3.4/README.md diff --git a/linux/atlassian/bitbucket/6/6.3.4/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.3.4/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.4/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.3.4/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.3.5/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.3.5/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.5/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.3.5/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.3.5/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.3.5/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.5/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.3.5/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.3.5/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.3.5/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.5/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.3.5/Makefile diff --git a/linux/atlassian/bitbucket/6/6.3.5/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.3.5/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.5/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.3.5/README.md diff --git a/linux/atlassian/bitbucket/6/6.3.5/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.3.5/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.5/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.3.5/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.3.6/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.3.6/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.6/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.3.6/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.3.6/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.3.6/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.6/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.3.6/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.3.6/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.3.6/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.6/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.3.6/Makefile diff --git a/linux/atlassian/bitbucket/6/6.3.6/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.3.6/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.6/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.3.6/README.md diff --git a/linux/atlassian/bitbucket/6/6.3.6/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.3.6/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.3.6/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.3.6/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.4.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.4.0/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.0/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.4.0/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.4.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.4.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.4.0/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.4.0/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.4.0/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.0/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.4.0/Makefile diff --git a/linux/atlassian/bitbucket/6/6.4.0/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.4.0/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.0/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.4.0/README.md diff --git a/linux/atlassian/bitbucket/6/6.4.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.4.0/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.0/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.4.0/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.4.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.4.1/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.1/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.4.1/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.4.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.4.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.4.1/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.4.1/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.4.1/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.1/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.4.1/Makefile diff --git a/linux/atlassian/bitbucket/6/6.4.1/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.4.1/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.1/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.4.1/README.md diff --git a/linux/atlassian/bitbucket/6/6.4.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.4.1/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.1/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.4.1/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.4.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.4.2/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.2/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.4.2/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.4.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.4.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.4.2/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.4.2/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.4.2/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.2/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.4.2/Makefile diff --git a/linux/atlassian/bitbucket/6/6.4.2/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.4.2/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.2/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.4.2/README.md diff --git a/linux/atlassian/bitbucket/6/6.4.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.4.2/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.2/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.4.2/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.4.3/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.4.3/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.3/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.4.3/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.4.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.4.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.4.3/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.4.3/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.4.3/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.3/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.4.3/Makefile diff --git a/linux/atlassian/bitbucket/6/6.4.3/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.4.3/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.3/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.4.3/README.md diff --git a/linux/atlassian/bitbucket/6/6.4.3/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.4.3/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.3/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.4.3/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.4.4/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.4.4/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.4/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.4.4/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.4.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.4.4/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.4/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.4.4/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.4.4/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.4.4/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.4/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.4.4/Makefile diff --git a/linux/atlassian/bitbucket/6/6.4.4/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.4.4/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.4/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.4.4/README.md diff --git a/linux/atlassian/bitbucket/6/6.4.4/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.4.4/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.4.4/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.4.4/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.5.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.5.0/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.0/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.5.0/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.5.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.5.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.5.0/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.5.0/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.5.0/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.0/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.5.0/Makefile diff --git a/linux/atlassian/bitbucket/6/6.5.0/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.5.0/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.0/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.5.0/README.md diff --git a/linux/atlassian/bitbucket/6/6.5.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.5.0/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.0/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.5.0/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.5.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.5.1/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.1/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.5.1/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.5.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.5.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.5.1/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.5.1/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.5.1/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.1/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.5.1/Makefile diff --git a/linux/atlassian/bitbucket/6/6.5.1/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.5.1/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.1/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.5.1/README.md diff --git a/linux/atlassian/bitbucket/6/6.5.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.5.1/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.1/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.5.1/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.5.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.5.2/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.2/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.5.2/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.5.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.5.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.5.2/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.5.2/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.5.2/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.2/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.5.2/Makefile diff --git a/linux/atlassian/bitbucket/6/6.5.2/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.5.2/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.2/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.5.2/README.md diff --git a/linux/atlassian/bitbucket/6/6.5.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.5.2/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.2/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.5.2/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.5.3/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.5.3/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.3/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.5.3/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.5.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.5.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.5.3/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.5.3/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.5.3/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.3/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.5.3/Makefile diff --git a/linux/atlassian/bitbucket/6/6.5.3/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.5.3/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.3/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.5.3/README.md diff --git a/linux/atlassian/bitbucket/6/6.5.3/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.5.3/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.5.3/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.5.3/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.6.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.6.0/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.0/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.6.0/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.6.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.6.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.6.0/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.6.0/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.6.0/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.0/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.6.0/Makefile diff --git a/linux/atlassian/bitbucket/6/6.6.0/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.6.0/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.0/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.6.0/README.md diff --git a/linux/atlassian/bitbucket/6/6.6.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.6.0/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.0/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.6.0/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.6.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.6.1/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.1/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.6.1/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.6.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.6.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.6.1/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.6.1/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.6.1/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.1/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.6.1/Makefile diff --git a/linux/atlassian/bitbucket/6/6.6.1/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.6.1/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.1/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.6.1/README.md diff --git a/linux/atlassian/bitbucket/6/6.6.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.6.1/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.1/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.6.1/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.6.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.6.2/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.2/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.6.2/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.6.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.6.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.6.2/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.6.2/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.6.2/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.2/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.6.2/Makefile diff --git a/linux/atlassian/bitbucket/6/6.6.2/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.6.2/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.2/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.6.2/README.md diff --git a/linux/atlassian/bitbucket/6/6.6.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.6.2/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.2/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.6.2/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.6.3/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.6.3/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.3/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.6.3/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.6.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.6.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.6.3/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.6.3/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.6.3/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.3/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.6.3/Makefile diff --git a/linux/atlassian/bitbucket/6/6.6.3/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.6.3/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.3/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.6.3/README.md diff --git a/linux/atlassian/bitbucket/6/6.6.3/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.6.3/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.3/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.6.3/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.6.4/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.6.4/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.4/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.6.4/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.6.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.6.4/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.4/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.6.4/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.6.4/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.6.4/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.4/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.6.4/Makefile diff --git a/linux/atlassian/bitbucket/6/6.6.4/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.6.4/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.4/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.6.4/README.md diff --git a/linux/atlassian/bitbucket/6/6.6.4/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.6.4/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.6.4/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.6.4/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.7.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.7.0/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.0/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.7.0/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.7.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.7.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.7.0/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.7.0/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.7.0/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.0/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.7.0/Makefile diff --git a/linux/atlassian/bitbucket/6/6.7.0/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.7.0/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.0/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.7.0/README.md diff --git a/linux/atlassian/bitbucket/6/6.7.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.7.0/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.0/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.7.0/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.7.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.7.1/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.1/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.7.1/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.7.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.7.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.7.1/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.7.1/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.7.1/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.1/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.7.1/Makefile diff --git a/linux/atlassian/bitbucket/6/6.7.1/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.7.1/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.1/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.7.1/README.md diff --git a/linux/atlassian/bitbucket/6/6.7.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.7.1/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.1/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.7.1/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.7.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.7.2/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.2/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.7.2/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.7.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.7.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.7.2/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.7.2/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.7.2/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.2/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.7.2/Makefile diff --git a/linux/atlassian/bitbucket/6/6.7.2/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.7.2/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.2/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.7.2/README.md diff --git a/linux/atlassian/bitbucket/6/6.7.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.7.2/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.2/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.7.2/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.7.3/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.7.3/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.3/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.7.3/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.7.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.7.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.7.3/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.7.3/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.7.3/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.3/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.7.3/Makefile diff --git a/linux/atlassian/bitbucket/6/6.7.3/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.7.3/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.3/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.7.3/README.md diff --git a/linux/atlassian/bitbucket/6/6.7.3/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.7.3/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.3/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.7.3/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.7.4/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.7.4/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.4/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.7.4/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.7.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.7.4/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.4/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.7.4/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.7.4/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.7.4/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.4/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.7.4/Makefile diff --git a/linux/atlassian/bitbucket/6/6.7.4/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.7.4/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.4/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.7.4/README.md diff --git a/linux/atlassian/bitbucket/6/6.7.4/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.7.4/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.7.4/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.7.4/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.8.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.8.0/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.0/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.8.0/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.8.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.8.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.8.0/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.8.0/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.8.0/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.0/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.8.0/Makefile diff --git a/linux/atlassian/bitbucket/6/6.8.0/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.8.0/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.0/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.8.0/README.md diff --git a/linux/atlassian/bitbucket/6/6.8.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.8.0/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.0/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.8.0/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.8.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.8.1/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.1/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.8.1/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.8.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.8.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.8.1/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.8.1/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.8.1/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.1/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.8.1/Makefile diff --git a/linux/atlassian/bitbucket/6/6.8.1/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.8.1/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.1/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.8.1/README.md diff --git a/linux/atlassian/bitbucket/6/6.8.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.8.1/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.1/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.8.1/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.8.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.8.2/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.2/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.8.2/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.8.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.8.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.8.2/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.8.2/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.8.2/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.2/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.8.2/Makefile diff --git a/linux/atlassian/bitbucket/6/6.8.2/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.8.2/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.2/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.8.2/README.md diff --git a/linux/atlassian/bitbucket/6/6.8.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.8.2/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.2/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.8.2/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.8.3/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.8.3/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.3/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.8.3/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.8.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.8.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.8.3/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.8.3/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.8.3/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.3/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.8.3/Makefile diff --git a/linux/atlassian/bitbucket/6/6.8.3/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.8.3/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.3/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.8.3/README.md diff --git a/linux/atlassian/bitbucket/6/6.8.3/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.8.3/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.8.3/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.8.3/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.9.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.9.0/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.0/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.9.0/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.9.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.9.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.9.0/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.9.0/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.9.0/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.0/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.9.0/Makefile diff --git a/linux/atlassian/bitbucket/6/6.9.0/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.9.0/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.0/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.9.0/README.md diff --git a/linux/atlassian/bitbucket/6/6.9.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.9.0/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.0/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.9.0/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.9.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.9.1/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.1/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.9.1/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.9.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.9.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.9.1/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.9.1/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.9.1/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.1/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.9.1/Makefile diff --git a/linux/atlassian/bitbucket/6/6.9.1/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.9.1/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.1/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.9.1/README.md diff --git a/linux/atlassian/bitbucket/6/6.9.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.9.1/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.1/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.9.1/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/6.9.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/6/6.9.2/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.2/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/6/6.9.2/Dockerfile diff --git a/linux/atlassian/bitbucket/6/6.9.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/6/6.9.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/6/6.9.2/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/6/6.9.2/Makefile b/linux/ecosystem/atlassian/bitbucket/6/6.9.2/Makefile similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.2/Makefile rename to linux/ecosystem/atlassian/bitbucket/6/6.9.2/Makefile diff --git a/linux/atlassian/bitbucket/6/6.9.2/README.md b/linux/ecosystem/atlassian/bitbucket/6/6.9.2/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.2/README.md rename to linux/ecosystem/atlassian/bitbucket/6/6.9.2/README.md diff --git a/linux/atlassian/bitbucket/6/6.9.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/6/6.9.2/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/6/6.9.2/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/6/6.9.2/entrypoint.sh diff --git a/linux/atlassian/bitbucket/6/README.md b/linux/ecosystem/atlassian/bitbucket/6/README.md similarity index 100% rename from linux/atlassian/bitbucket/6/README.md rename to linux/ecosystem/atlassian/bitbucket/6/README.md diff --git a/linux/atlassian/bitbucket/7/7.0.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/7/7.0.0/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.0/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/7/7.0.0/Dockerfile diff --git a/linux/atlassian/bitbucket/7/7.0.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/7/7.0.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/7/7.0.0/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/7/7.0.0/Makefile b/linux/ecosystem/atlassian/bitbucket/7/7.0.0/Makefile similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.0/Makefile rename to linux/ecosystem/atlassian/bitbucket/7/7.0.0/Makefile diff --git a/linux/atlassian/bitbucket/7/7.0.0/README.md b/linux/ecosystem/atlassian/bitbucket/7/7.0.0/README.md similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.0/README.md rename to linux/ecosystem/atlassian/bitbucket/7/7.0.0/README.md diff --git a/linux/atlassian/bitbucket/7/7.0.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/7/7.0.0/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.0/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/7/7.0.0/entrypoint.sh diff --git a/linux/atlassian/bitbucket/7/7.0.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/7/7.0.1/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.1/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/7/7.0.1/Dockerfile diff --git a/linux/atlassian/bitbucket/7/7.0.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/7/7.0.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/7/7.0.1/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/7/7.0.1/Makefile b/linux/ecosystem/atlassian/bitbucket/7/7.0.1/Makefile similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.1/Makefile rename to linux/ecosystem/atlassian/bitbucket/7/7.0.1/Makefile diff --git a/linux/atlassian/bitbucket/7/7.0.1/README.md b/linux/ecosystem/atlassian/bitbucket/7/7.0.1/README.md similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.1/README.md rename to linux/ecosystem/atlassian/bitbucket/7/7.0.1/README.md diff --git a/linux/atlassian/bitbucket/7/7.0.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/7/7.0.1/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.1/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/7/7.0.1/entrypoint.sh diff --git a/linux/atlassian/bitbucket/7/7.0.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/7/7.0.2/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.2/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/7/7.0.2/Dockerfile diff --git a/linux/atlassian/bitbucket/7/7.0.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/7/7.0.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/7/7.0.2/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/7/7.0.2/Makefile b/linux/ecosystem/atlassian/bitbucket/7/7.0.2/Makefile similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.2/Makefile rename to linux/ecosystem/atlassian/bitbucket/7/7.0.2/Makefile diff --git a/linux/atlassian/bitbucket/7/7.0.2/README.md b/linux/ecosystem/atlassian/bitbucket/7/7.0.2/README.md similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.2/README.md rename to linux/ecosystem/atlassian/bitbucket/7/7.0.2/README.md diff --git a/linux/atlassian/bitbucket/7/7.0.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/7/7.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.2/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/7/7.0.2/entrypoint.sh diff --git a/linux/atlassian/bitbucket/7/7.0.3/Dockerfile b/linux/ecosystem/atlassian/bitbucket/7/7.0.3/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.3/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/7/7.0.3/Dockerfile diff --git a/linux/atlassian/bitbucket/7/7.0.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/7/7.0.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/7/7.0.3/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/7/7.0.3/Makefile b/linux/ecosystem/atlassian/bitbucket/7/7.0.3/Makefile similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.3/Makefile rename to linux/ecosystem/atlassian/bitbucket/7/7.0.3/Makefile diff --git a/linux/atlassian/bitbucket/7/7.0.3/README.md b/linux/ecosystem/atlassian/bitbucket/7/7.0.3/README.md similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.3/README.md rename to linux/ecosystem/atlassian/bitbucket/7/7.0.3/README.md diff --git a/linux/atlassian/bitbucket/7/7.0.3/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/7/7.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/7/7.0.3/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/7/7.0.3/entrypoint.sh diff --git a/linux/atlassian/bitbucket/7/7.1.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/7/7.1.0/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.0/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/7/7.1.0/Dockerfile diff --git a/linux/atlassian/bitbucket/7/7.1.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/7/7.1.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/7/7.1.0/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/7/7.1.0/Makefile b/linux/ecosystem/atlassian/bitbucket/7/7.1.0/Makefile similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.0/Makefile rename to linux/ecosystem/atlassian/bitbucket/7/7.1.0/Makefile diff --git a/linux/atlassian/bitbucket/7/7.1.0/README.md b/linux/ecosystem/atlassian/bitbucket/7/7.1.0/README.md similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.0/README.md rename to linux/ecosystem/atlassian/bitbucket/7/7.1.0/README.md diff --git a/linux/atlassian/bitbucket/7/7.1.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/7/7.1.0/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.0/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/7/7.1.0/entrypoint.sh diff --git a/linux/atlassian/bitbucket/7/7.1.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/7/7.1.1/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.1/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/7/7.1.1/Dockerfile diff --git a/linux/atlassian/bitbucket/7/7.1.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/7/7.1.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/7/7.1.1/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/7/7.1.1/Makefile b/linux/ecosystem/atlassian/bitbucket/7/7.1.1/Makefile similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.1/Makefile rename to linux/ecosystem/atlassian/bitbucket/7/7.1.1/Makefile diff --git a/linux/atlassian/bitbucket/7/7.1.1/README.md b/linux/ecosystem/atlassian/bitbucket/7/7.1.1/README.md similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.1/README.md rename to linux/ecosystem/atlassian/bitbucket/7/7.1.1/README.md diff --git a/linux/atlassian/bitbucket/7/7.1.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/7/7.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.1/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/7/7.1.1/entrypoint.sh diff --git a/linux/atlassian/bitbucket/7/7.1.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/7/7.1.2/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.2/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/7/7.1.2/Dockerfile diff --git a/linux/atlassian/bitbucket/7/7.1.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/7/7.1.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/7/7.1.2/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/7/7.1.2/Makefile b/linux/ecosystem/atlassian/bitbucket/7/7.1.2/Makefile similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.2/Makefile rename to linux/ecosystem/atlassian/bitbucket/7/7.1.2/Makefile diff --git a/linux/atlassian/bitbucket/7/7.1.2/README.md b/linux/ecosystem/atlassian/bitbucket/7/7.1.2/README.md similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.2/README.md rename to linux/ecosystem/atlassian/bitbucket/7/7.1.2/README.md diff --git a/linux/atlassian/bitbucket/7/7.1.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/7/7.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.2/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/7/7.1.2/entrypoint.sh diff --git a/linux/atlassian/bitbucket/7/7.1.3/Dockerfile b/linux/ecosystem/atlassian/bitbucket/7/7.1.3/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.3/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/7/7.1.3/Dockerfile diff --git a/linux/atlassian/bitbucket/7/7.1.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/7/7.1.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/7/7.1.3/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/7/7.1.3/Makefile b/linux/ecosystem/atlassian/bitbucket/7/7.1.3/Makefile similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.3/Makefile rename to linux/ecosystem/atlassian/bitbucket/7/7.1.3/Makefile diff --git a/linux/atlassian/bitbucket/7/7.1.3/README.md b/linux/ecosystem/atlassian/bitbucket/7/7.1.3/README.md similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.3/README.md rename to linux/ecosystem/atlassian/bitbucket/7/7.1.3/README.md diff --git a/linux/atlassian/bitbucket/7/7.1.3/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/7/7.1.3/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/7/7.1.3/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/7/7.1.3/entrypoint.sh diff --git a/linux/atlassian/bitbucket/7/7.2.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/7/7.2.0/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.0/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/7/7.2.0/Dockerfile diff --git a/linux/atlassian/bitbucket/7/7.2.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/7/7.2.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/7/7.2.0/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/7/7.2.0/Makefile b/linux/ecosystem/atlassian/bitbucket/7/7.2.0/Makefile similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.0/Makefile rename to linux/ecosystem/atlassian/bitbucket/7/7.2.0/Makefile diff --git a/linux/atlassian/bitbucket/7/7.2.0/README.md b/linux/ecosystem/atlassian/bitbucket/7/7.2.0/README.md similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.0/README.md rename to linux/ecosystem/atlassian/bitbucket/7/7.2.0/README.md diff --git a/linux/atlassian/bitbucket/7/7.2.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/7/7.2.0/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.0/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/7/7.2.0/entrypoint.sh diff --git a/linux/atlassian/bitbucket/7/7.2.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/7/7.2.1/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.1/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/7/7.2.1/Dockerfile diff --git a/linux/atlassian/bitbucket/7/7.2.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/7/7.2.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/7/7.2.1/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/7/7.2.1/Makefile b/linux/ecosystem/atlassian/bitbucket/7/7.2.1/Makefile similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.1/Makefile rename to linux/ecosystem/atlassian/bitbucket/7/7.2.1/Makefile diff --git a/linux/atlassian/bitbucket/7/7.2.1/README.md b/linux/ecosystem/atlassian/bitbucket/7/7.2.1/README.md similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.1/README.md rename to linux/ecosystem/atlassian/bitbucket/7/7.2.1/README.md diff --git a/linux/atlassian/bitbucket/7/7.2.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/7/7.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/7/7.2.1/entrypoint.sh diff --git a/linux/atlassian/bitbucket/7/7.2.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/7/7.2.2/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.2/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/7/7.2.2/Dockerfile diff --git a/linux/atlassian/bitbucket/7/7.2.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/7/7.2.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/7/7.2.2/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/7/7.2.2/Makefile b/linux/ecosystem/atlassian/bitbucket/7/7.2.2/Makefile similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.2/Makefile rename to linux/ecosystem/atlassian/bitbucket/7/7.2.2/Makefile diff --git a/linux/atlassian/bitbucket/7/7.2.2/README.md b/linux/ecosystem/atlassian/bitbucket/7/7.2.2/README.md similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.2/README.md rename to linux/ecosystem/atlassian/bitbucket/7/7.2.2/README.md diff --git a/linux/atlassian/bitbucket/7/7.2.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/7/7.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.2/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/7/7.2.2/entrypoint.sh diff --git a/linux/atlassian/bitbucket/7/7.2.3/Dockerfile b/linux/ecosystem/atlassian/bitbucket/7/7.2.3/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.3/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/7/7.2.3/Dockerfile diff --git a/linux/atlassian/bitbucket/7/7.2.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/7/7.2.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/7/7.2.3/Dockerfile.jdk11 diff --git a/linux/atlassian/bitbucket/7/7.2.3/Makefile b/linux/ecosystem/atlassian/bitbucket/7/7.2.3/Makefile similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.3/Makefile rename to linux/ecosystem/atlassian/bitbucket/7/7.2.3/Makefile diff --git a/linux/atlassian/bitbucket/7/7.2.3/README.md b/linux/ecosystem/atlassian/bitbucket/7/7.2.3/README.md similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.3/README.md rename to linux/ecosystem/atlassian/bitbucket/7/7.2.3/README.md diff --git a/linux/atlassian/bitbucket/7/7.2.3/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/7/7.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/7/7.2.3/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/7/7.2.3/entrypoint.sh diff --git a/linux/atlassian/bitbucket/7/README.md b/linux/ecosystem/atlassian/bitbucket/7/README.md similarity index 100% rename from linux/atlassian/bitbucket/7/README.md rename to linux/ecosystem/atlassian/bitbucket/7/README.md diff --git a/linux/atlassian/bitbucket/README.md b/linux/ecosystem/atlassian/bitbucket/README.md similarity index 100% rename from linux/atlassian/bitbucket/README.md rename to linux/ecosystem/atlassian/bitbucket/README.md diff --git a/linux/ecosystem/atlassian/bitbucket/latest/Dockerfile b/linux/ecosystem/atlassian/bitbucket/latest/Dockerfile new file mode 100644 index 000000000..abff7dcaa --- /dev/null +++ b/linux/ecosystem/atlassian/bitbucket/latest/Dockerfile @@ -0,0 +1,44 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ARG BITBUCKET_VERSION=7.11.2 +ARG DOWNLOAD_URL=https://product-downloads.atlassian.com/software/stash/downloads/atlassian-bitbucket-${BITBUCKET_VERSION}.tar.gz + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory +ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket +ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket + +VOLUME ["${BITBUCKET_HOME}"] +WORKDIR $BITBUCKET_HOME + +# Expose HTTP and SSH ports +EXPOSE 7990 +EXPOSE 7999 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \ + && sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/atlassian/bitbucket/latest/Dockerfile.jdk11 b/linux/ecosystem/atlassian/bitbucket/latest/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/bitbucket/latest/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/bitbucket/latest/Dockerfile.jdk11 diff --git a/linux/ecosystem/atlassian/bitbucket/latest/Makefile b/linux/ecosystem/atlassian/bitbucket/latest/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/bitbucket/latest/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/atlassian/bitbucket/latest/README.md b/linux/ecosystem/atlassian/bitbucket/latest/README.md similarity index 100% rename from linux/atlassian/bitbucket/latest/README.md rename to linux/ecosystem/atlassian/bitbucket/latest/README.md diff --git a/linux/ecosystem/atlassian/bitbucket/latest/docker-compose.yml b/linux/ecosystem/atlassian/bitbucket/latest/docker-compose.yml new file mode 100644 index 000000000..ec9d75eca --- /dev/null +++ b/linux/ecosystem/atlassian/bitbucket/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/bitbucket:latest" + build: + context: . diff --git a/linux/atlassian/bitbucket/latest/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/latest/entrypoint.sh similarity index 100% rename from linux/atlassian/bitbucket/latest/entrypoint.sh rename to linux/ecosystem/atlassian/bitbucket/latest/entrypoint.sh diff --git a/linux/atlassian/confluence/5/5.5/Dockerfile b/linux/ecosystem/atlassian/confluence/5/5.5/Dockerfile similarity index 100% rename from linux/atlassian/confluence/5/5.5/Dockerfile rename to linux/ecosystem/atlassian/confluence/5/5.5/Dockerfile diff --git a/linux/atlassian/confluence/5/5.5/Makefile b/linux/ecosystem/atlassian/confluence/5/5.5/Makefile similarity index 100% rename from linux/atlassian/confluence/5/5.5/Makefile rename to linux/ecosystem/atlassian/confluence/5/5.5/Makefile diff --git a/linux/atlassian/confluence/5/5.5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/5/5.5/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/5/5.5/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/5/5.5/entrypoint.sh diff --git a/linux/atlassian/confluence/5/5.9.14/Dockerfile b/linux/ecosystem/atlassian/confluence/5/5.9.14/Dockerfile similarity index 100% rename from linux/atlassian/confluence/5/5.9.14/Dockerfile rename to linux/ecosystem/atlassian/confluence/5/5.9.14/Dockerfile diff --git a/linux/atlassian/confluence/5/5.9.14/Makefile b/linux/ecosystem/atlassian/confluence/5/5.9.14/Makefile similarity index 100% rename from linux/atlassian/confluence/5/5.9.14/Makefile rename to linux/ecosystem/atlassian/confluence/5/5.9.14/Makefile diff --git a/linux/atlassian/confluence/5/5.9.14/entrypoint.sh b/linux/ecosystem/atlassian/confluence/5/5.9.14/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/5/5.9.14/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/5/5.9.14/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.1/.env b/linux/ecosystem/atlassian/confluence/6/6.0.1/.env new file mode 100644 index 000000000..ecd7bb585 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.0.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.0.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.0.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.0.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.0.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.0.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.0.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.0.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.2/.env b/linux/ecosystem/atlassian/confluence/6/6.0.2/.env new file mode 100644 index 000000000..19ab3b392 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.0.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.0.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.0.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.0.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.0.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.0.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.0.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.3/.env b/linux/ecosystem/atlassian/confluence/6/6.0.3/.env new file mode 100644 index 000000000..f6b5a835a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.3 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.0.3.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.0.3/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.0.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.0.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.0.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.0.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.0.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.4/.env b/linux/ecosystem/atlassian/confluence/6/6.0.4/.env new file mode 100644 index 000000000..038f10825 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.4/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.4 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.0.4.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.0.4/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.0.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.0.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.0.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.0.4/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.0.4/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.0.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.5/.env b/linux/ecosystem/atlassian/confluence/6/6.0.5/.env new file mode 100644 index 000000000..bd78d49be --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.5/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.5 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.0.5.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.5/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.0.5/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.5/Makefile b/linux/ecosystem/atlassian/confluence/6/6.0.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.5/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.0.5/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.0.5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.0.5/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.0.5/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.0.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.6/.env b/linux/ecosystem/atlassian/confluence/6/6.0.6/.env new file mode 100644 index 000000000..87e9de1bd --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.6/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.6 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.0.6.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.6/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.0.6/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.6/Makefile b/linux/ecosystem/atlassian/confluence/6/6.0.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.6/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.0.6/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.0.6/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.0.6/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.0.6/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.0.6/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.7/.env b/linux/ecosystem/atlassian/confluence/6/6.0.7/.env new file mode 100644 index 000000000..48b03065a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.7/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.7 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.0.7.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.7/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.0.7/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.7/Makefile b/linux/ecosystem/atlassian/confluence/6/6.0.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.0.7/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.0.7/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.0.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.0.7/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.0.7/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.0.7/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.0.7/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.0/.env b/linux/ecosystem/atlassian/confluence/6/6.1.0/.env new file mode 100644 index 000000000..d2a458f34 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.0/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1.0 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.1.0.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.1.0/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.1.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.1.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.1.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.1.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.1.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.1.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.1/.env b/linux/ecosystem/atlassian/confluence/6/6.1.1/.env new file mode 100644 index 000000000..283c5b3af --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.1.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.1.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.1.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.1.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.1.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.1.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.2/.env b/linux/ecosystem/atlassian/confluence/6/6.1.2/.env new file mode 100644 index 000000000..09c8d5557 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.1.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.1.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.1.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.1.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.1.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.1.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.3/.env b/linux/ecosystem/atlassian/confluence/6/6.1.3/.env new file mode 100644 index 000000000..1cef7250f --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1.3 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.1.3.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.1.3/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.1.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.1.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.1.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.1.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.1.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.4/.env b/linux/ecosystem/atlassian/confluence/6/6.1.4/.env new file mode 100644 index 000000000..dcd508b9b --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.4/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1.4 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.1.4.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.1.4/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.1.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.1.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.1.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.1.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.1.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.1.4/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.1.4/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.1.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.0/.env b/linux/ecosystem/atlassian/confluence/6/6.10.0/.env new file mode 100644 index 000000000..7597c1a01 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.0/.env @@ -0,0 +1,3 @@ + +RELEASE=6.10.0 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.10.0.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.10.0/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.10.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.10.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.10.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.10.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.10.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.10.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.1/.env b/linux/ecosystem/atlassian/confluence/6/6.10.1/.env new file mode 100644 index 000000000..1d8045327 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.10.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.10.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.10.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.10.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.10.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.10.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.10.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.10.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.10.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.2/.env b/linux/ecosystem/atlassian/confluence/6/6.10.2/.env new file mode 100644 index 000000000..8af54d091 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.10.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.10.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.10.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.10.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.10.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.10.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.10.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.10.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.10.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.3/.env b/linux/ecosystem/atlassian/confluence/6/6.10.3/.env new file mode 100644 index 000000000..84c40b316 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.10.3 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.10.3.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.10.3/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.10.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.10.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.10.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.10.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.10.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.10.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.10.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.10.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.11.0/.env b/linux/ecosystem/atlassian/confluence/6/6.11.0/.env new file mode 100644 index 000000000..dfc8f71f0 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.11.0/.env @@ -0,0 +1,3 @@ + +RELEASE=6.11.0 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.11.0.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.11.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.11.0/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.11.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.11.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.11.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.11.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.11.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.11.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.11.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.11.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.11.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.11.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.11.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.11.1/.env b/linux/ecosystem/atlassian/confluence/6/6.11.1/.env new file mode 100644 index 000000000..30cf0836b --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.11.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.11.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.11.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.11.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.11.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.11.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.11.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.11.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.11.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.11.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.11.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.11.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.11.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.11.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.11.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.11.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.11.2/.env b/linux/ecosystem/atlassian/confluence/6/6.11.2/.env new file mode 100644 index 000000000..addc1e4c3 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.11.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.11.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.11.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.11.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.11.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.11.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.11.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.11.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.11.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.11.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.11.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.11.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.11.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.11.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.11.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.11.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.0/.env b/linux/ecosystem/atlassian/confluence/6/6.12.0/.env new file mode 100644 index 000000000..4f0b1a0e2 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.0/.env @@ -0,0 +1,3 @@ + +RELEASE=6.12.0 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.12.0.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.12.0/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.12.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.12.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.12.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.12.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.12.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.12.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.1/.env b/linux/ecosystem/atlassian/confluence/6/6.12.1/.env new file mode 100644 index 000000000..f62fa52bd --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.12.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.12.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.12.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.12.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.12.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.12.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.12.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.12.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.12.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.2/.env b/linux/ecosystem/atlassian/confluence/6/6.12.2/.env new file mode 100644 index 000000000..05734d6e7 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.12.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.12.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.12.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.12.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.12.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.12.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.12.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.12.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.12.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.3/.env b/linux/ecosystem/atlassian/confluence/6/6.12.3/.env new file mode 100644 index 000000000..ef62b7f81 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.12.3 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.12.3.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.12.3/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.12.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.12.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.12.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.12.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.12.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.12.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.4/.env b/linux/ecosystem/atlassian/confluence/6/6.12.4/.env new file mode 100644 index 000000000..73e973274 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.4/.env @@ -0,0 +1,3 @@ + +RELEASE=6.12.4 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.12.4.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.12.4/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.12.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.12.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.12.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.12.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.12.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.12.4/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.12.4/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.12.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.0/.env b/linux/ecosystem/atlassian/confluence/6/6.13.0/.env new file mode 100644 index 000000000..b65d7830f --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.0/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.0 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.0.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.0/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.13.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.1/.env b/linux/ecosystem/atlassian/confluence/6/6.13.1/.env new file mode 100644 index 000000000..cfcc9bc6c --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.13.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.10/.env b/linux/ecosystem/atlassian/confluence/6/6.13.10/.env new file mode 100644 index 000000000..5bfc2adb3 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.10/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.10 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.10.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.10/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.10/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.10/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.10/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.10/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.10/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.10/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.10/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.10/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.13.10/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.10/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.10/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.10/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.11/.env b/linux/ecosystem/atlassian/confluence/6/6.13.11/.env new file mode 100644 index 000000000..981b1cca6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.11/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.11 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.11.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.11/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.11/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.11/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.11/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.11/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.11/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.11/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.11/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.11/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.13.11/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.11/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.11/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.11/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.12/.env b/linux/ecosystem/atlassian/confluence/6/6.13.12/.env new file mode 100644 index 000000000..1b88ce797 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.12/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.12 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.12.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.12/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.12/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.12/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.12/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.12/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.12/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.12/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.12/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.12/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.13.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.12/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.12/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.13/.env b/linux/ecosystem/atlassian/confluence/6/6.13.13/.env new file mode 100644 index 000000000..2413a6b69 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.13/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.13 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.13.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.13/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.13/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.13/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.13/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.13/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.13/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.13/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.13/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.13/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.13.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.13/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.13/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.15/.env b/linux/ecosystem/atlassian/confluence/6/6.13.15/.env new file mode 100644 index 000000000..bfb7c3517 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.15/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.15 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.15.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.15/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.15/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.15/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.15/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.15/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.15/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.15/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.15/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.15/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.13.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.15/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.4/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.15/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.17/.env b/linux/ecosystem/atlassian/confluence/6/6.13.17/.env new file mode 100644 index 000000000..4105da19e --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.17/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.17 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.17.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.17/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.17/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.17/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.17/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.17/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.17/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.17/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.17/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.17/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.13.5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.17/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.5/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.17/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.18/.env b/linux/ecosystem/atlassian/confluence/6/6.13.18/.env new file mode 100644 index 000000000..5ea664f78 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.18/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.18 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.18.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.18/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.18/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.18/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.18/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.18/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.18/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.18/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.18/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.18/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.13.6/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.18/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.6/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.18/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.19/.env b/linux/ecosystem/atlassian/confluence/6/6.13.19/.env new file mode 100644 index 000000000..d65140659 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.19/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.19 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.19.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.19/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.19/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.19/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.19/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.19/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.19/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.19/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.19/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.19/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.13.7/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.19/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.7/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.19/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.2/.env b/linux/ecosystem/atlassian/confluence/6/6.13.2/.env new file mode 100644 index 000000000..68db04d3e --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.13.8/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.8/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.20/.env b/linux/ecosystem/atlassian/confluence/6/6.13.20/.env new file mode 100644 index 000000000..096ae154e --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.20/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.20 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.20.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.20/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.20/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.20/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.20/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.20/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.20/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.20/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.20/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.20/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.13.9/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.20/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.9/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.20/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.21/.env b/linux/ecosystem/atlassian/confluence/6/6.13.21/.env new file mode 100644 index 000000000..198e7b683 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.21/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.21 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.21.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.21/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.21/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.21/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.21/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.21/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.21/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.21/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.21/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.21/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.14.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.21/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.14.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.21/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.3/.env b/linux/ecosystem/atlassian/confluence/6/6.13.3/.env new file mode 100644 index 000000000..145f9f2ba --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.3 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.3.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.3/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.14.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.14.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.4/.env b/linux/ecosystem/atlassian/confluence/6/6.13.4/.env new file mode 100644 index 000000000..9988fa30a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.4/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.4 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.4.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.4/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.14.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.4/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.14.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.5/.env b/linux/ecosystem/atlassian/confluence/6/6.13.5/.env new file mode 100644 index 000000000..9b9d4721a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.5/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.5 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.5.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.5/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.5/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.5/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.5/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.5/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.14.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.5/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.14.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.6/.env b/linux/ecosystem/atlassian/confluence/6/6.13.6/.env new file mode 100644 index 000000000..c002c4867 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.6/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.6 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.6.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.6/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.6/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.6/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.6/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.6/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.15.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.6/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.6/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.7/.env b/linux/ecosystem/atlassian/confluence/6/6.13.7/.env new file mode 100644 index 000000000..179f1eb06 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.7/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.7 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.7.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.7/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.7/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.7/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.7/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.7/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.15.10/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.7/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.10/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.7/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.8/.env b/linux/ecosystem/atlassian/confluence/6/6.13.8/.env new file mode 100644 index 000000000..a9b55e9ad --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.8/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.8 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.8.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.8/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.8/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.8/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.8/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.8/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.15.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.8/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.8/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.9/.env b/linux/ecosystem/atlassian/confluence/6/6.13.9/.env new file mode 100644 index 000000000..5144ea9d9 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.9/.env @@ -0,0 +1,3 @@ + +RELEASE=6.13.9 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.13.9.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.9/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.9/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.9/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.9/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.9/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.13.9/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.9/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.13.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.15.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.9/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.4/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.9/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.0/.env b/linux/ecosystem/atlassian/confluence/6/6.14.0/.env new file mode 100644 index 000000000..09182cd6d --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.0/.env @@ -0,0 +1,3 @@ + +RELEASE=6.14.0 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.14.0.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.14.0/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.14.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.14.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.15.6/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.14.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.6/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.14.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.1/.env b/linux/ecosystem/atlassian/confluence/6/6.14.1/.env new file mode 100644 index 000000000..9fba158cb --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.14.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.14.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.14.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.14.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.14.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.15.7/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.14.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.7/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.14.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.2/.env b/linux/ecosystem/atlassian/confluence/6/6.14.2/.env new file mode 100644 index 000000000..58ca325d9 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.14.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.14.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.14.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.14.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.14.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.15.8/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.14.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.8/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.14.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.3/.env b/linux/ecosystem/atlassian/confluence/6/6.14.3/.env new file mode 100644 index 000000000..9656268ed --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.14.3 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.14.3.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.14.3/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.14.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.14.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.14.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.14.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.15.9/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.14.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.9/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.14.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.1/.env b/linux/ecosystem/atlassian/confluence/6/6.15.1/.env new file mode 100644 index 000000000..88c23614e --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.15.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.15.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.2.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.2.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.10/.env b/linux/ecosystem/atlassian/confluence/6/6.15.10/.env new file mode 100644 index 000000000..bc840adbd --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.10/.env @@ -0,0 +1,3 @@ + +RELEASE=6.15.10 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.15.10.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.10/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.10/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.10/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.10/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.10/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.10/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.10/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.10/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.10/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.2.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.10/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.10/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.2/.env b/linux/ecosystem/atlassian/confluence/6/6.15.2/.env new file mode 100644 index 000000000..bf60686a8 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.15.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.15.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.2.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.2.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.4/.env b/linux/ecosystem/atlassian/confluence/6/6.15.4/.env new file mode 100644 index 000000000..9b18513bb --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.4/.env @@ -0,0 +1,3 @@ + +RELEASE=6.15.4 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.15.4.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.4/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.2.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.4/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.2.4/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.6/.env b/linux/ecosystem/atlassian/confluence/6/6.15.6/.env new file mode 100644 index 000000000..d609b17a0 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.6/.env @@ -0,0 +1,3 @@ + +RELEASE=6.15.6 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.15.6.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.6/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.6/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.6/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.6/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.6/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.3.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.6/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.3.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.6/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.7/.env b/linux/ecosystem/atlassian/confluence/6/6.15.7/.env new file mode 100644 index 000000000..bf91194e6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.7/.env @@ -0,0 +1,3 @@ + +RELEASE=6.15.7 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.15.7.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.7/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.7/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.7/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.7/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.7/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.3.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.7/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.3.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.7/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.8/.env b/linux/ecosystem/atlassian/confluence/6/6.15.8/.env new file mode 100644 index 000000000..55abf8ab9 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.8/.env @@ -0,0 +1,3 @@ + +RELEASE=6.15.8 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.15.8.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.8/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.8/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.8/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.8/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.8/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.3.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.8/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.3.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.8/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.9/.env b/linux/ecosystem/atlassian/confluence/6/6.15.9/.env new file mode 100644 index 000000000..4b779c9dc --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.9/.env @@ -0,0 +1,3 @@ + +RELEASE=6.15.9 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.15.9.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.9/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.9/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.9/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.9/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.9/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.15.9/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.9/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.15.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.3.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.9/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.3.4/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.9/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.0/.env b/linux/ecosystem/atlassian/confluence/6/6.2.0/.env new file mode 100644 index 000000000..b26238429 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.0/.env @@ -0,0 +1,3 @@ + +RELEASE=6.2.0 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.2.0.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.2.0/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.2.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.2.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.4.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.2.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.4.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.2.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.1/.env b/linux/ecosystem/atlassian/confluence/6/6.2.1/.env new file mode 100644 index 000000000..f99324d92 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.2.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.2.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.2.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.2.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.4.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.4.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.2.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.2/.env b/linux/ecosystem/atlassian/confluence/6/6.2.2/.env new file mode 100644 index 000000000..284ae0cbf --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.2.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.2.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.2.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.2.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.2.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.4.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.4.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.2.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.3/.env b/linux/ecosystem/atlassian/confluence/6/6.2.3/.env new file mode 100644 index 000000000..87489b388 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.2.3 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.2.3.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.2.3/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.2.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.2.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.4.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.4.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.2.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.4/.env b/linux/ecosystem/atlassian/confluence/6/6.2.4/.env new file mode 100644 index 000000000..7344e72f1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.4/.env @@ -0,0 +1,3 @@ + +RELEASE=6.2.4 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.2.4.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.2.4/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.2.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.2.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.2.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.2.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.5.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.2.4/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.5.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.2.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.1/.env b/linux/ecosystem/atlassian/confluence/6/6.3.1/.env new file mode 100644 index 000000000..e45728e1e --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.3.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.3.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.3.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.3.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.5.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.3.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.5.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.3.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.2/.env b/linux/ecosystem/atlassian/confluence/6/6.3.2/.env new file mode 100644 index 000000000..310edce37 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.3.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.3.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.3.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.3.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.5.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.3.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.5.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.3.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.3/.env b/linux/ecosystem/atlassian/confluence/6/6.3.3/.env new file mode 100644 index 000000000..7df336f6e --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.3 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.3.3.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.3.3/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.3.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.3.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.5.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.3.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.5.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.3.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.4/.env b/linux/ecosystem/atlassian/confluence/6/6.3.4/.env new file mode 100644 index 000000000..e2f22e173 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.4/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.4 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.3.4.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.3.4/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.3.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.3.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.3.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.3.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.3.4/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.3.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.0/.env b/linux/ecosystem/atlassian/confluence/6/6.4.0/.env new file mode 100644 index 000000000..edc7914d2 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.0/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.0 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.4.0.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.4.0/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.4.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.4.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.4.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.4.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.1/.env b/linux/ecosystem/atlassian/confluence/6/6.4.1/.env new file mode 100644 index 000000000..0ffba2ad0 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.4.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.4.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.4.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.4.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.10/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.4.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.10/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.4.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.2/.env b/linux/ecosystem/atlassian/confluence/6/6.4.2/.env new file mode 100644 index 000000000..6aa43e67e --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.4.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.4.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.4.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.4.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.11/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.4.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.11/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.4.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.3/.env b/linux/ecosystem/atlassian/confluence/6/6.4.3/.env new file mode 100644 index 000000000..5712f9dfc --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.3 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.4.3.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.4.3/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.4.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.4.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.4.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.4.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.12/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.4.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.12/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.4.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.0/.env b/linux/ecosystem/atlassian/confluence/6/6.5.0/.env new file mode 100644 index 000000000..d30a1d3a9 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.0/.env @@ -0,0 +1,3 @@ + +RELEASE=6.5.0 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.5.0.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.5.0/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.5.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.5.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.13/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.5.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.13/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.5.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.1/.env b/linux/ecosystem/atlassian/confluence/6/6.5.1/.env new file mode 100644 index 000000000..e12c4817e --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.5.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.5.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.5.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.5.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.5.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.14/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.5.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.14/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.5.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.2/.env b/linux/ecosystem/atlassian/confluence/6/6.5.2/.env new file mode 100644 index 000000000..b078db65b --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.5.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.5.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.5.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.5.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.5.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.15/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.5.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.15/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.5.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.3/.env b/linux/ecosystem/atlassian/confluence/6/6.5.3/.env new file mode 100644 index 000000000..70fa0bfa7 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.5.3 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.5.3.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.5.3/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.5.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.5.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.5.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.5.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.17/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.5.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.17/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.5.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.0/.env b/linux/ecosystem/atlassian/confluence/6/6.6.0/.env new file mode 100644 index 000000000..45b8e64ff --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.0/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.0 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.0.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.0/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.1/.env b/linux/ecosystem/atlassian/confluence/6/6.6.1/.env new file mode 100644 index 000000000..d34c02445 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.10/.env b/linux/ecosystem/atlassian/confluence/6/6.6.10/.env new file mode 100644 index 000000000..b361c9b20 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.10/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.10 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.10.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.10/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.10/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.10/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.10/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.10/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.10/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.10/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.10/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.10/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.10/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.4/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.10/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.11/.env b/linux/ecosystem/atlassian/confluence/6/6.6.11/.env new file mode 100644 index 000000000..b596676b1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.11/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.11 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.11.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.11/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.11/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.11/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.11/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.11/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.11/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.11/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.11/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.11/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.11/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.5/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.11/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.12/.env b/linux/ecosystem/atlassian/confluence/6/6.6.12/.env new file mode 100644 index 000000000..656c9641b --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.12/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.12 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.12.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.12/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.12/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.12/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.12/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.12/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.12/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.12/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.12/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.12/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.6/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.12/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.6/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.12/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.13/.env b/linux/ecosystem/atlassian/confluence/6/6.6.13/.env new file mode 100644 index 000000000..88783b979 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.13/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.13 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.13.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.13/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.13/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.13/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.13/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.13/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.13/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.13/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.13/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.13/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.7/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.13/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.7/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.13/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.14/.env b/linux/ecosystem/atlassian/confluence/6/6.6.14/.env new file mode 100644 index 000000000..87766073b --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.14/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.14 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.14.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.14/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.14/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.14/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.14/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.14/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.14/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.14/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.14/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.14/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.8/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.14/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.8/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.14/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.15/.env b/linux/ecosystem/atlassian/confluence/6/6.6.15/.env new file mode 100644 index 000000000..3e90b7e7e --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.15/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.15 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.15.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.15/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.15/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.15/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.15/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.15/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.15/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.15/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.15/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.15/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.6.9/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.15/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.9/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.15/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.16/.env b/linux/ecosystem/atlassian/confluence/6/6.6.16/.env new file mode 100644 index 000000000..43cd635a8 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.16/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.16 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.16.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.16/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.16/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.16/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.16/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.16/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.16/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.16/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.16/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.16/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.7.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.16/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.7.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.16/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.17/.env b/linux/ecosystem/atlassian/confluence/6/6.6.17/.env new file mode 100644 index 000000000..7e025377f --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.17/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.17 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.17.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.17/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.17/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.17/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.17/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.17/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.17/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.17/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.17/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.17/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.7.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.17/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.7.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.17/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.2/.env b/linux/ecosystem/atlassian/confluence/6/6.6.2/.env new file mode 100644 index 000000000..d7e9f01a6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.7.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.7.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.3/.env b/linux/ecosystem/atlassian/confluence/6/6.6.3/.env new file mode 100644 index 000000000..48a685e93 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.3 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.3.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.3/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.7.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.7.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.4/.env b/linux/ecosystem/atlassian/confluence/6/6.6.4/.env new file mode 100644 index 000000000..d4cc67ded --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.4/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.4 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.4.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.4/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.8.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.4/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.8.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.5/.env b/linux/ecosystem/atlassian/confluence/6/6.6.5/.env new file mode 100644 index 000000000..7dbc98196 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.5/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.5 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.5.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.5/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.5/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.5/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.5/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.5/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.8.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.5/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.8.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.6/.env b/linux/ecosystem/atlassian/confluence/6/6.6.6/.env new file mode 100644 index 000000000..d81c7e388 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.6/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.6 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.6.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.6/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.6/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.6/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.6/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.6/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.8.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.6/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.8.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.6/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.7/.env b/linux/ecosystem/atlassian/confluence/6/6.6.7/.env new file mode 100644 index 000000000..a9226369e --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.7/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.7 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.7.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.7/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.7/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.7/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.7/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.7/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.8.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.7/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.8.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.7/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.8/.env b/linux/ecosystem/atlassian/confluence/6/6.6.8/.env new file mode 100644 index 000000000..baa84f762 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.8/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.8 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.8.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.8/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.8/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.8/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.8/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.8/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.8.5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.8/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.8.5/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.8/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.9/.env b/linux/ecosystem/atlassian/confluence/6/6.6.9/.env new file mode 100644 index 000000000..ab8265e13 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.9/.env @@ -0,0 +1,3 @@ + +RELEASE=6.6.9 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.6.9.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.9/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.9/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.9/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.9/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.9/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.6.9/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.9/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.6.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.9.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.9/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.9.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.9/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.0/.env b/linux/ecosystem/atlassian/confluence/6/6.7.0/.env new file mode 100644 index 000000000..e9594d19f --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.0/.env @@ -0,0 +1,3 @@ + +RELEASE=6.7.0 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.7.0.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.7.0/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.7.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.7.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.9.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.7.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.9.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.7.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.1/.env b/linux/ecosystem/atlassian/confluence/6/6.7.1/.env new file mode 100644 index 000000000..d390d39a1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.7.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.7.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.7.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.7.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.7.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/6/6.9.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.7.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.9.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.7.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.2/.env b/linux/ecosystem/atlassian/confluence/6/6.7.2/.env new file mode 100644 index 000000000..9bd3155a6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.7.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.7.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.7.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.7.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.7.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/7/7.0.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.7.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.0.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.7.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.3/.env b/linux/ecosystem/atlassian/confluence/6/6.7.3/.env new file mode 100644 index 000000000..64a3a4d6d --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.7.3 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.7.3.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.7.3/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.7.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.7.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.7.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.7.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/7/7.0.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.7.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.0.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.7.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.0/.env b/linux/ecosystem/atlassian/confluence/6/6.8.0/.env new file mode 100644 index 000000000..bd0f07d7f --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.0/.env @@ -0,0 +1,3 @@ + +RELEASE=6.8.0 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.8.0.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.8.0/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.8.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.8.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/7/7.0.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.8.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.0.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.8.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.1/.env b/linux/ecosystem/atlassian/confluence/6/6.8.1/.env new file mode 100644 index 000000000..eeca8131a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.8.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.8.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.8.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.8.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.8.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/7/7.0.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.8.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.0.4/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.8.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.2/.env b/linux/ecosystem/atlassian/confluence/6/6.8.2/.env new file mode 100644 index 000000000..c633752cd --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.8.2 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.8.2.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.8.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.8.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.8.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/7/7.0.5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.8.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.0.5/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.8.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.3/.env b/linux/ecosystem/atlassian/confluence/6/6.8.3/.env new file mode 100644 index 000000000..04b0382a6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.8.3 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.8.3.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.8.3/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.8.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.8.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/7/7.1.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.8.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.1.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.8.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.5/.env b/linux/ecosystem/atlassian/confluence/6/6.8.5/.env new file mode 100644 index 000000000..e7116fec2 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.5/.env @@ -0,0 +1,3 @@ + +RELEASE=6.8.5 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.8.5.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.5/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.8.5/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.5/Makefile b/linux/ecosystem/atlassian/confluence/6/6.8.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.8.5/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.8.5/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.8.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/7/7.1.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.8.5/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.1.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.8.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.9.0/.env b/linux/ecosystem/atlassian/confluence/6/6.9.0/.env new file mode 100644 index 000000000..2894cde94 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.9.0/.env @@ -0,0 +1,3 @@ + +RELEASE=6.9.0 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.9.0.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.9.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.9.0/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.9.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.9.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.9.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.9.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.9.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.9.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.9.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/7/7.1.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.9.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.1.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.9.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.9.1/.env b/linux/ecosystem/atlassian/confluence/6/6.9.1/.env new file mode 100644 index 000000000..21643280f --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.9.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.9.1 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.9.1.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.9.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.9.1/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.9.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.9.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.9.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.9.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.9.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.9.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.9.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/7/7.2.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.9.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.2.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.9.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/confluence/6/6.9.3/.env b/linux/ecosystem/atlassian/confluence/6/6.9.3/.env new file mode 100644 index 000000000..41c6ceb1b --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.9.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.9.3 +DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-6.9.3.tar.gz diff --git a/linux/ecosystem/atlassian/confluence/6/6.9.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.9.3/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.9.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/6/6.9.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.9.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.9.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/confluence/6/6.9.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.9.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/6/6.9.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/confluence/7/7.2.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.9.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.9.3/entrypoint.sh diff --git a/linux/atlassian/confluence/7/7.0.1/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.0.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.0.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.0.1/Dockerfile diff --git a/linux/atlassian/confluence/7/7.0.1/Makefile b/linux/ecosystem/atlassian/confluence/7/7.0.1/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.0.1/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.0.1/Makefile diff --git a/linux/atlassian/confluence/7/7.2.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.0.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.2.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.0.1/entrypoint.sh diff --git a/linux/atlassian/confluence/7/7.0.2/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.0.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.0.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.0.2/Dockerfile diff --git a/linux/atlassian/confluence/7/7.0.2/Makefile b/linux/ecosystem/atlassian/confluence/7/7.0.2/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.0.2/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.0.2/Makefile diff --git a/linux/atlassian/confluence/7/7.3.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.3.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.0.2/entrypoint.sh diff --git a/linux/atlassian/confluence/7/7.0.3/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.0.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.0.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.0.3/Dockerfile diff --git a/linux/atlassian/confluence/7/7.0.3/Makefile b/linux/ecosystem/atlassian/confluence/7/7.0.3/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.0.3/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.0.3/Makefile diff --git a/linux/atlassian/confluence/7/7.3.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.3.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.0.3/entrypoint.sh diff --git a/linux/atlassian/confluence/7/7.0.4/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.0.4/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.0.4/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.0.4/Dockerfile diff --git a/linux/atlassian/confluence/7/7.0.4/Makefile b/linux/ecosystem/atlassian/confluence/7/7.0.4/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.0.4/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.0.4/Makefile diff --git a/linux/atlassian/confluence/7/7.3.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.0.4/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.3.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.0.4/entrypoint.sh diff --git a/linux/atlassian/confluence/7/7.0.5/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.0.5/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.0.5/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.0.5/Dockerfile diff --git a/linux/atlassian/confluence/7/7.0.5/Makefile b/linux/ecosystem/atlassian/confluence/7/7.0.5/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.0.5/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.0.5/Makefile diff --git a/linux/atlassian/confluence/7/7.3.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.0.5/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.3.4/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.0.5/entrypoint.sh diff --git a/linux/atlassian/confluence/7/7.1.0/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.1.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.1.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.1.0/Dockerfile diff --git a/linux/atlassian/confluence/7/7.1.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/7/7.1.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/confluence/7/7.1.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/confluence/7/7.1.0/Dockerfile.jdk11 diff --git a/linux/atlassian/confluence/7/7.1.0/Makefile b/linux/ecosystem/atlassian/confluence/7/7.1.0/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.1.0/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.1.0/Makefile diff --git a/linux/atlassian/confluence/7/7.3.5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.1.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.3.5/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.1.0/entrypoint.sh diff --git a/linux/atlassian/confluence/7/7.1.1/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.1.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.1.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.1.1/Dockerfile diff --git a/linux/atlassian/confluence/7/7.1.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/7/7.1.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/confluence/7/7.1.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/confluence/7/7.1.1/Dockerfile.jdk11 diff --git a/linux/atlassian/confluence/7/7.1.1/Makefile b/linux/ecosystem/atlassian/confluence/7/7.1.1/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.1.1/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.1.1/Makefile diff --git a/linux/atlassian/confluence/7/7.4.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.4.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.1.1/entrypoint.sh diff --git a/linux/atlassian/confluence/7/7.1.2/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.1.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.1.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.1.2/Dockerfile diff --git a/linux/atlassian/confluence/7/7.1.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/7/7.1.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/confluence/7/7.1.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/confluence/7/7.1.2/Dockerfile.jdk11 diff --git a/linux/atlassian/confluence/7/7.1.2/Makefile b/linux/ecosystem/atlassian/confluence/7/7.1.2/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.1.2/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.1.2/Makefile diff --git a/linux/atlassian/confluence/7/7.5.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.5.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.1.2/entrypoint.sh diff --git a/linux/atlassian/confluence/7/7.2.0/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.2.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.2.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.2.0/Dockerfile diff --git a/linux/atlassian/confluence/7/7.2.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/7/7.2.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/confluence/7/7.2.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/confluence/7/7.2.0/Dockerfile.jdk11 diff --git a/linux/atlassian/confluence/7/7.2.0/Makefile b/linux/ecosystem/atlassian/confluence/7/7.2.0/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.2.0/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.2.0/Makefile diff --git a/linux/atlassian/confluence/latest/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.2.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/latest/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.2.0/entrypoint.sh diff --git a/linux/atlassian/confluence/7/7.2.1/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.2.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.2.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.2.1/Dockerfile diff --git a/linux/atlassian/confluence/7/7.2.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/7/7.2.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/confluence/7/7.2.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/confluence/7/7.2.1/Dockerfile.jdk11 diff --git a/linux/atlassian/confluence/7/7.2.1/Makefile b/linux/ecosystem/atlassian/confluence/7/7.2.1/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.2.1/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.2.1/Makefile diff --git a/linux/ecosystem/atlassian/confluence/7/7.2.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.2.1/entrypoint.sh new file mode 100755 index 000000000..250fc031a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/7/7.2.1/entrypoint.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export CATALINA_OPTS + + +# Start Confluence as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${CONFLUENCE_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${CONFLUENCE_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${CONFLUENCE_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh $@" +else + exec "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh" "$@" +fi diff --git a/linux/atlassian/confluence/7/7.2.2/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.2.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.2.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.2.2/Dockerfile diff --git a/linux/atlassian/confluence/7/7.2.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/7/7.2.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/confluence/7/7.2.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/confluence/7/7.2.2/Dockerfile.jdk11 diff --git a/linux/atlassian/confluence/7/7.2.2/Makefile b/linux/ecosystem/atlassian/confluence/7/7.2.2/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.2.2/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.2.2/Makefile diff --git a/linux/ecosystem/atlassian/confluence/7/7.2.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.2.2/entrypoint.sh new file mode 100755 index 000000000..250fc031a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/7/7.2.2/entrypoint.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export CATALINA_OPTS + + +# Start Confluence as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${CONFLUENCE_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${CONFLUENCE_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${CONFLUENCE_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh $@" +else + exec "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh" "$@" +fi diff --git a/linux/atlassian/confluence/7/7.3.1/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.3.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.3.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.3.1/Dockerfile diff --git a/linux/atlassian/confluence/7/7.3.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/7/7.3.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/confluence/7/7.3.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/confluence/7/7.3.1/Dockerfile.jdk11 diff --git a/linux/atlassian/confluence/7/7.3.1/Makefile b/linux/ecosystem/atlassian/confluence/7/7.3.1/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.3.1/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.3.1/Makefile diff --git a/linux/ecosystem/atlassian/confluence/7/7.3.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.3.1/entrypoint.sh new file mode 100755 index 000000000..250fc031a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/7/7.3.1/entrypoint.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export CATALINA_OPTS + + +# Start Confluence as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${CONFLUENCE_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${CONFLUENCE_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${CONFLUENCE_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh $@" +else + exec "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh" "$@" +fi diff --git a/linux/atlassian/confluence/7/7.3.2/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.3.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.3.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.3.2/Dockerfile diff --git a/linux/atlassian/confluence/7/7.3.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/7/7.3.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/confluence/7/7.3.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/confluence/7/7.3.2/Dockerfile.jdk11 diff --git a/linux/atlassian/confluence/7/7.3.2/Makefile b/linux/ecosystem/atlassian/confluence/7/7.3.2/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.3.2/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.3.2/Makefile diff --git a/linux/ecosystem/atlassian/confluence/7/7.3.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.3.2/entrypoint.sh new file mode 100755 index 000000000..250fc031a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/7/7.3.2/entrypoint.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export CATALINA_OPTS + + +# Start Confluence as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${CONFLUENCE_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${CONFLUENCE_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${CONFLUENCE_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh $@" +else + exec "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh" "$@" +fi diff --git a/linux/atlassian/confluence/7/7.3.3/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.3.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.3.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.3.3/Dockerfile diff --git a/linux/atlassian/confluence/7/7.3.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/7/7.3.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/confluence/7/7.3.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/confluence/7/7.3.3/Dockerfile.jdk11 diff --git a/linux/atlassian/confluence/7/7.3.3/Makefile b/linux/ecosystem/atlassian/confluence/7/7.3.3/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.3.3/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.3.3/Makefile diff --git a/linux/ecosystem/atlassian/confluence/7/7.3.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.3.3/entrypoint.sh new file mode 100755 index 000000000..250fc031a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/7/7.3.3/entrypoint.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export CATALINA_OPTS + + +# Start Confluence as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${CONFLUENCE_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${CONFLUENCE_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${CONFLUENCE_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh $@" +else + exec "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh" "$@" +fi diff --git a/linux/atlassian/confluence/7/7.3.4/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.3.4/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.3.4/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.3.4/Dockerfile diff --git a/linux/atlassian/confluence/7/7.3.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/7/7.3.4/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/confluence/7/7.3.4/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/confluence/7/7.3.4/Dockerfile.jdk11 diff --git a/linux/atlassian/confluence/7/7.3.4/Makefile b/linux/ecosystem/atlassian/confluence/7/7.3.4/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.3.4/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.3.4/Makefile diff --git a/linux/ecosystem/atlassian/confluence/7/7.3.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.3.4/entrypoint.sh new file mode 100755 index 000000000..250fc031a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/7/7.3.4/entrypoint.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export CATALINA_OPTS + + +# Start Confluence as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${CONFLUENCE_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${CONFLUENCE_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${CONFLUENCE_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh $@" +else + exec "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh" "$@" +fi diff --git a/linux/atlassian/confluence/7/7.3.5/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.3.5/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.3.5/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.3.5/Dockerfile diff --git a/linux/atlassian/confluence/7/7.3.5/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/7/7.3.5/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/confluence/7/7.3.5/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/confluence/7/7.3.5/Dockerfile.jdk11 diff --git a/linux/atlassian/confluence/7/7.3.5/Makefile b/linux/ecosystem/atlassian/confluence/7/7.3.5/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.3.5/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.3.5/Makefile diff --git a/linux/ecosystem/atlassian/confluence/7/7.3.5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.3.5/entrypoint.sh new file mode 100755 index 000000000..250fc031a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/7/7.3.5/entrypoint.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export CATALINA_OPTS + + +# Start Confluence as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${CONFLUENCE_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${CONFLUENCE_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${CONFLUENCE_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh $@" +else + exec "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh" "$@" +fi diff --git a/linux/atlassian/confluence/7/7.4.0/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.4.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.4.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.4.0/Dockerfile diff --git a/linux/atlassian/confluence/7/7.4.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/7/7.4.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/confluence/7/7.4.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/confluence/7/7.4.0/Dockerfile.jdk11 diff --git a/linux/atlassian/confluence/7/7.4.0/Makefile b/linux/ecosystem/atlassian/confluence/7/7.4.0/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.4.0/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.4.0/Makefile diff --git a/linux/ecosystem/atlassian/confluence/7/7.4.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.4.0/entrypoint.sh new file mode 100755 index 000000000..250fc031a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/7/7.4.0/entrypoint.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export CATALINA_OPTS + + +# Start Confluence as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${CONFLUENCE_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${CONFLUENCE_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${CONFLUENCE_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh $@" +else + exec "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh" "$@" +fi diff --git a/linux/atlassian/confluence/7/7.5.0/Dockerfile b/linux/ecosystem/atlassian/confluence/7/7.5.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/7/7.5.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/7/7.5.0/Dockerfile diff --git a/linux/atlassian/confluence/7/7.5.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/7/7.5.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/confluence/7/7.5.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/confluence/7/7.5.0/Dockerfile.jdk11 diff --git a/linux/atlassian/confluence/7/7.5.0/Makefile b/linux/ecosystem/atlassian/confluence/7/7.5.0/Makefile similarity index 100% rename from linux/atlassian/confluence/7/7.5.0/Makefile rename to linux/ecosystem/atlassian/confluence/7/7.5.0/Makefile diff --git a/linux/ecosystem/atlassian/confluence/7/7.5.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.5.0/entrypoint.sh new file mode 100755 index 000000000..250fc031a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/7/7.5.0/entrypoint.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export CATALINA_OPTS + + +# Start Confluence as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${CONFLUENCE_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${CONFLUENCE_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${CONFLUENCE_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh $@" +else + exec "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/confluence/README.md b/linux/ecosystem/atlassian/confluence/README.md new file mode 100644 index 000000000..dd133a134 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/README.md @@ -0,0 +1,145 @@ +# [Atlassian Enterprise releases](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html) +## Build info + +All presented images avalible on our repo in docker hub. + +## LTS releases: +* Latest version of Confluence `6.13.4` + +------- + +*Some old versions of Confluence may fail health check with [AdoptOpenJDK](https://github.com/AdoptOpenJDK) (open source, prebuilt OpenJDK binaries). But it will be works.* + +------- + +![Atlassian Confluence Server](https://www.atlassian.com/dam/wac/legacy/confluence_logo_landing.png) + +Confluence Server is where you create, organise and discuss work with your team. Capture the knowledge that's too often lost in email inboxes and shared network drives in Confluence – where it's easy to find, use, and update. Give every team, project, or department its own space to create the things they need, whether it's meeting notes, product requirements, file lists, or project plans, you can get more done in Confluence. + +Learn more about Confluence Server: + +You can find the repository for this Dockerfile at + +# Overview + +This Docker container makes it easy to get an instance of Confluence up and running. + +# Quick Start + +For the directory in the environmental variable `CONFLUENCE_HOME` that is used to store Confluence data +(amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume): + +Start Atlassian Confluence Server: + + $> docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence + + +**Success**. Confluence is now available on [http://localhost:8090](http://localhost:8090)* + +Please ensure your container has the necessary resources allocated to it. +We recommend 2GiB of memory allocated to accommodate the application server. +See [Supported Platforms](https://confluence.atlassian.com/display/DOC/Supported+platforms) for further information. + + +_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8090` instead._ + +## Memory / Heap Size + +If you need to override Confluence Server's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. + +* `JVM_MINIMUM_MEMORY` (default: 1024m) + + The minimum heap size of the JVM + +* `JVM_MAXIMUM_MEMORY` (default: 1024m) + + The maximum heap size of the JVM + +## Reverse Proxy Settings + +If Confluence is run behind a reverse proxy server, then you need to specify extra options to make Confluence aware of the setup. They can be controlled via the below environment variables. + +* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) + + The reverse proxy's fully qualified hostname. + +* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) + + The reverse proxy's port number via which Confluence is accessed. + +* `CATALINA_CONNECTOR_SCHEME` (default: http) + + The protocol via which Confluence is accessed. + +* `CATALINA_CONNECTOR_SECURE` (default: false) + + Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. + +## JVM configuration + +If you need to pass additional JVM arguments to Confluence such as specifying a custom trust store, you can add them via the below environment variable + +* `JVM_SUPPORT_RECOMMENDED_ARGS` + + Additional JVM arguments for Confluence + +Example: + + $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 epicmorg/confluence + + +# Upgrade + +To upgrade to a more recent version of Confluence Server you can simply stop the `Confluence` +container and start a new one based on a more recent image: + + $> docker stop confluence + $> docker rm confluence + $> docker run ... (see above) + +As your data is stored in the data volume directory on the host, it will still +be available after the upgrade. + +_Note: Please make sure that you **don't** accidentally remove the `confluence` +container and its volumes using the `-v` option._ + +# Backup + +For evaluating Confluence you can use the built-in database that will store its files in the Confluence Server home directory. In that case it is sufficient to create a backup archive of the directory on the host that is used as a volume (`/data/your-confluence-home` in the example above). + +Confluence's [automatic backup](https://confluence.atlassian.com/display/DOC/Configuring+Backups) is currently supported in the Docker setup. You can also use the [Production Backup Strategy](https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy) approach if you're using an external database. + +Read more about data recovery and backups: [Site Backup and Restore](https://confluence.atlassian.com/display/DOC/Site+Backup+and+Restore) + +# Versioning + +The `latest` tag matches the most recent release of Atlassian Confluence Server. +So `epicmorg/confluence:latest` will use the newest stable version of Confluence Server available. + +Alternatively, you can use a specific minor version of Confluence Server by using a version number +tag: `epicmorg/confluence:5.10.8`. This will install the latest `5.10.8` version that +is available. + +## Versions available + +* `epicmorg/confluence:latest` +* `epicmorg/confluence:5.6.4` +* `epicmorg/confluence:5.10.8` + +# Known Problems +In Mac OS X with Docker version 1.11.0, when running with docker-machine, there is a bug where the directory specified for `CONFLUENCE_HOME` in a volume mount will not have the correct permission, and thus startup fails with a permission denied error: + Error writing state to confluence.cfg.xml +com.atlassian.config.ConfigurationException: Couldn't save confluence.cfg.xml to /var/atlassian/confluence-home directory. + +See https://github.com/docker/docker/issues/4023 for details. + +To work around this issue, use a different host operating system other than Mac OSX until a newer release of Docker fixes this issue. + +# Support + +This Docker image is great for evaluating Confluence. However, it does not use an Oracle JDK due to licensing constraints. Instead, it uses OpenJDK which is not supported for running Confluence in production. + +To meet our supported platform requirements, you'll need to build your own image based on [Oracle JDK](https://github.com/oracle/docker-images/tree/master/OracleJDK). See [Update the Confluence Docker image to use Oracle JDK ](https://confluence.atlassian.com/display/CONFKB/Update+the+Confluence+Docker+image+to+use+Oracle+JDK) for more info. + +For product support go to [support.atlassian.com](http://support.atlassian.com). + diff --git a/linux/ecosystem/atlassian/confluence/latest/Dockerfile b/linux/ecosystem/atlassian/confluence/latest/Dockerfile new file mode 100644 index 000000000..a0bf14609 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/latest/Dockerfile @@ -0,0 +1,45 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ARG CONFLUENCE_VERSION=7.13.1 +ARG DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/latest/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/latest/Dockerfile.jdk11 new file mode 100644 index 000000000..cd8c3c562 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/latest/Dockerfile.jdk11 @@ -0,0 +1,46 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ARG CONFLUENCE_VERSION=7.13.1 +ARG DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/latest/Makefile b/linux/ecosystem/atlassian/confluence/latest/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/latest/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/confluence/latest/docker-compose.yml b/linux/ecosystem/atlassian/confluence/latest/docker-compose.yml new file mode 100644 index 000000000..191f5b119 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:latest" + build: + context: . diff --git a/linux/ecosystem/atlassian/confluence/latest/entrypoint.sh b/linux/ecosystem/atlassian/confluence/latest/entrypoint.sh new file mode 100755 index 000000000..250fc031a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/latest/entrypoint.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export CATALINA_OPTS + + +# Start Confluence as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${CONFLUENCE_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${CONFLUENCE_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${CONFLUENCE_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh $@" +else + exec "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/confluence/templates/5/Dockerfile b/linux/ecosystem/atlassian/confluence/templates/5/Dockerfile new file mode 100644 index 000000000..948204891 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/templates/5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/templates/5/Makefile b/linux/ecosystem/atlassian/confluence/templates/5/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/templates/5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/confluence/templates/5/docker-compose.yml b/linux/ecosystem/atlassian/confluence/templates/5/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/templates/5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/confluence/templates/5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/templates/5/entrypoint.sh new file mode 100755 index 000000000..250fc031a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/templates/5/entrypoint.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export CATALINA_OPTS + + +# Start Confluence as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${CONFLUENCE_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${CONFLUENCE_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${CONFLUENCE_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh $@" +else + exec "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/confluence/templates/6/Dockerfile b/linux/ecosystem/atlassian/confluence/templates/6/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/templates/6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html +ENV CONFLUENCE_HOME /var/atlassian/application-data/confluence +ENV CONFLUENCE_INSTALL_DIR /opt/atlassian/confluence + +VOLUME ["${CONFLUENCE_HOME}"] +WORKDIR $CONFLUENCE_HOME + +# Expose HTTP and Synchrony ports +EXPOSE 8090 +EXPOSE 8091 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${CONFLUENCE_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$CONFLUENCE_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${CONFLUENCE_INSTALL_DIR}/ \ + && sed -i -e 's/-Xms\([0-9]\+[kmg]\) -Xmx\([0-9]\+[kmg]\)/-Xms\${JVM_MINIMUM_MEMORY:=\1} -Xmx\${JVM_MAXIMUM_MEMORY:=\2} \${JVM_SUPPORT_RECOMMENDED_ARGS} -Dconfluence.home=\${CONFLUENCE_HOME}/g' ${CONFLUENCE_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8090"/port="8090" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${CONFLUENCE_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/confluence/templates/6/Makefile b/linux/ecosystem/atlassian/confluence/templates/6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/templates/6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/confluence/templates/6/docker-compose.yml b/linux/ecosystem/atlassian/confluence/templates/6/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/templates/6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/confluence:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/confluence/templates/6/entrypoint.sh b/linux/ecosystem/atlassian/confluence/templates/6/entrypoint.sh new file mode 100755 index 000000000..250fc031a --- /dev/null +++ b/linux/ecosystem/atlassian/confluence/templates/6/entrypoint.sh @@ -0,0 +1,39 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export CATALINA_OPTS + + +# Start Confluence as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${CONFLUENCE_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${CONFLUENCE_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${CONFLUENCE_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh $@" +else + exec "$CONFLUENCE_INSTALL_DIR/bin/start-confluence.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.0.3/.env b/linux/ecosystem/atlassian/crucible/1/1.0.3/.env new file mode 100644 index 000000000..b4fcad0b7 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.0.3/.env @@ -0,0 +1,3 @@ + +RELEASE=1.0.3 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.0.3.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.0.3/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.0.3/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.0.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.0.3/Makefile b/linux/ecosystem/atlassian/crucible/1/1.0.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.0.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.0.3/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.0.3/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.0.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/fisheye-crucible/latest/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/latest/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.0.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/crucible/1/1.0.4/.env b/linux/ecosystem/atlassian/crucible/1/1.0.4/.env new file mode 100644 index 000000000..886036292 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.0.4/.env @@ -0,0 +1,3 @@ + +RELEASE=1.0.4 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.0.4.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.0.4/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.0.4/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.0.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.0.4/Makefile b/linux/ecosystem/atlassian/crucible/1/1.0.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.0.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.0.4/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.0.4/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.0.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.0.4/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.0.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.0.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.0/.env b/linux/ecosystem/atlassian/crucible/1/1.0/.env new file mode 100644 index 000000000..555a888db --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.0/.env @@ -0,0 +1,3 @@ + +RELEASE=1.0 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.0-build-223.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.0/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.0/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.0/Makefile b/linux/ecosystem/atlassian/crucible/1/1.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.0/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.0/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.0/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.1/.env b/linux/ecosystem/atlassian/crucible/1/1.1.1/.env new file mode 100644 index 000000000..4696e7ad0 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.1/.env @@ -0,0 +1,3 @@ + +RELEASE=1.1.1 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.1.1.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.1/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.1.1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.1.1/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.1.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.2/.env b/linux/ecosystem/atlassian/crucible/1/1.1.2/.env new file mode 100644 index 000000000..c7d19a235 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.2/.env @@ -0,0 +1,3 @@ + +RELEASE=1.1.2 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.1.2.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.2/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.1.2/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.2/Makefile b/linux/ecosystem/atlassian/crucible/1/1.1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.2/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.1.2/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.2/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.1.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.3/.env b/linux/ecosystem/atlassian/crucible/1/1.1.3/.env new file mode 100644 index 000000000..7a24531fb --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.3/.env @@ -0,0 +1,3 @@ + +RELEASE=1.1.3 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.1.3.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.3/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.1.3/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.3/Makefile b/linux/ecosystem/atlassian/crucible/1/1.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.3/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.1.3/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.3/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.1.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.4/.env b/linux/ecosystem/atlassian/crucible/1/1.1.4/.env new file mode 100644 index 000000000..46b605d14 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.4/.env @@ -0,0 +1,3 @@ + +RELEASE=1.1.4 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.1.4.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.4/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.1.4/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.4/Makefile b/linux/ecosystem/atlassian/crucible/1/1.1.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.4/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.1.4/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.1.4/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.1.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.1/.env b/linux/ecosystem/atlassian/crucible/1/1.1/.env new file mode 100644 index 000000000..d42a2c90e --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1/.env @@ -0,0 +1,3 @@ + +RELEASE=1.1 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.1.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.1/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.1/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.1/.env b/linux/ecosystem/atlassian/crucible/1/1.2.1/.env new file mode 100644 index 000000000..e73a23819 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.1/.env @@ -0,0 +1,3 @@ + +RELEASE=1.2.1 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.2.1.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.1/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.2.1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.2.1/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.2.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.2/.env b/linux/ecosystem/atlassian/crucible/1/1.2.2/.env new file mode 100644 index 000000000..f4ca6a51c --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.2/.env @@ -0,0 +1,3 @@ + +RELEASE=1.2.2 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.2.2.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.2/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.2.2/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.2/Makefile b/linux/ecosystem/atlassian/crucible/1/1.2.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.2/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.2.2/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.2/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.2.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.3/.env b/linux/ecosystem/atlassian/crucible/1/1.2.3/.env new file mode 100644 index 000000000..f8da3d8cb --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.3/.env @@ -0,0 +1,3 @@ + +RELEASE=1.2.3 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.2.3.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.3/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.2.3/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.3/Makefile b/linux/ecosystem/atlassian/crucible/1/1.2.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.3/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.2.3/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.2.3/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.2.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.2/.env b/linux/ecosystem/atlassian/crucible/1/1.2/.env new file mode 100644 index 000000000..aaba1d4a2 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2/.env @@ -0,0 +1,3 @@ + +RELEASE=1.2 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.2.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.2/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.2/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.2/Makefile b/linux/ecosystem/atlassian/crucible/1/1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.2/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.2/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.2/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.1/.env b/linux/ecosystem/atlassian/crucible/1/1.5.1/.env new file mode 100644 index 000000000..e8a6ca3e4 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.1/.env @@ -0,0 +1,3 @@ + +RELEASE=1.5.1 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.5.1.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.1/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.5.1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.5.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.5.1/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.5.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.2/.env b/linux/ecosystem/atlassian/crucible/1/1.5.2/.env new file mode 100644 index 000000000..6190ac222 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.2/.env @@ -0,0 +1,3 @@ + +RELEASE=1.5.2 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.5.2.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.2/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.5.2/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.2/Makefile b/linux/ecosystem/atlassian/crucible/1/1.5.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.2/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.5.2/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.2/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.5.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.3/.env b/linux/ecosystem/atlassian/crucible/1/1.5.3/.env new file mode 100644 index 000000000..952eaa7e2 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.3/.env @@ -0,0 +1,3 @@ + +RELEASE=1.5.3 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.5.3.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.3/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.5.3/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.3/Makefile b/linux/ecosystem/atlassian/crucible/1/1.5.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.3/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.5.3/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.3/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.5.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.4/.env b/linux/ecosystem/atlassian/crucible/1/1.5.4/.env new file mode 100644 index 000000000..c184e0b01 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.4/.env @@ -0,0 +1,3 @@ + +RELEASE=1.5.4 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.5.4.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.4/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.5.4/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.4/Makefile b/linux/ecosystem/atlassian/crucible/1/1.5.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.4/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.5.4/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.5.4/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.5.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.5/.env b/linux/ecosystem/atlassian/crucible/1/1.5/.env new file mode 100644 index 000000000..0f80a554e --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5/.env @@ -0,0 +1,3 @@ + +RELEASE=1.5 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.5.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.5/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.5/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.5/Makefile b/linux/ecosystem/atlassian/crucible/1/1.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.5/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.5/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.5/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0/.env b/linux/ecosystem/atlassian/crucible/1/1.6.0/.env new file mode 100644 index 000000000..da149cae5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.0 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.0.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.0/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.0/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/.env b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/.env new file mode 100644 index 000000000..07ec71ef9 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.0Beta1 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.0.beta1.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/.env b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/.env new file mode 100644 index 000000000..5e27753f8 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.0Beta2 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.0.beta2.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.1/.env b/linux/ecosystem/atlassian/crucible/1/1.6.1/.env new file mode 100644 index 000000000..c2bff741b --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.1/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.1 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.1.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.1/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.1/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.2.1/.env b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/.env new file mode 100644 index 000000000..cad3b7d01 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.2.1 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.2.1.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.2.1/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.2.1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.2.1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.2.1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.2/.env b/linux/ecosystem/atlassian/crucible/1/1.6.2/.env new file mode 100644 index 000000000..8f98dad06 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.2/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.2 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.2.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.2/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.2/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.2/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.2/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.2/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.2/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.3/.env b/linux/ecosystem/atlassian/crucible/1/1.6.3/.env new file mode 100644 index 000000000..fad673518 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.3/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.3 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.3.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.3/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.3/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.3/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.3/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.3/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.3/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.4/.env b/linux/ecosystem/atlassian/crucible/1/1.6.4/.env new file mode 100644 index 000000000..ad8e970fa --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.4/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.4 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.4.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.4/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.4/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.4/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.4/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.4/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.4/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5.a/.env b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/.env new file mode 100644 index 000000000..c628ed5de --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.5.a +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.5.a.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5.a/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5.a/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5.a/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5.a/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5/.env b/linux/ecosystem/atlassian/crucible/1/1.6.5/.env new file mode 100644 index 000000000..43a8e7576 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.5 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.5.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.5/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.5/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5a/.env b/linux/ecosystem/atlassian/crucible/1/1.6.5a/.env new file mode 100644 index 000000000..6070c5b66 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5a/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.5a +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.5a.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5a/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.5a/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5a/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5a/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.5a/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5a/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5a/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.5a/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5a/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.5a/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.5a/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.5a/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.6/.env b/linux/ecosystem/atlassian/crucible/1/1.6.6/.env new file mode 100644 index 000000000..dd85e3c14 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.6/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.6 +DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.6.zip diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.6/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.6/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.6/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.6/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.6/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/crucible/1/1.6.6/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.6/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/1/1.6.6/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/crucible/templates/1/Dockerfile b/linux/ecosystem/atlassian/crucible/templates/1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/templates/1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/crucible-${RELEASE}.zip \ + && unzip -q /tmp/crucible-${RELEASE}.zip -d /tmp \ + && mv /tmp/crucible-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/crucible/templates/1/Makefile b/linux/ecosystem/atlassian/crucible/templates/1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/templates/1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/crucible/templates/1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/templates/1/docker-compose.yml new file mode 100644 index 000000000..9adcdc7af --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/templates/1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/crucible/templates/1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/templates/1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/crucible/templates/1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/.env new file mode 100644 index 000000000..b3e452724 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/.env @@ -0,0 +1,3 @@ + +RELEASE=2.0.0.B3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.0.0.B3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/.env new file mode 100644 index 000000000..f5b8f82d5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.0.0.RC1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.0.0.RC1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/.env new file mode 100644 index 000000000..127c3ce81 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/.env @@ -0,0 +1,3 @@ + +RELEASE=2.0.0.RC2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.0.0.RC2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/.env new file mode 100644 index 000000000..8f0acb4ef --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/.env @@ -0,0 +1,3 @@ + +RELEASE=2.0.0.RC3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.0.0.RC3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/.env new file mode 100644 index 000000000..52eca6c5d --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/.env @@ -0,0 +1,3 @@ + +RELEASE=2.0.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.0.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/.env new file mode 100644 index 000000000..43d4f4c16 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.0.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.0.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/.env new file mode 100644 index 000000000..76a232dbc --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/.env @@ -0,0 +1,3 @@ + +RELEASE=2.0.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.0.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/.env new file mode 100644 index 000000000..4d965adc3 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/.env @@ -0,0 +1,3 @@ + +RELEASE=2.0.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.0.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/.env new file mode 100644 index 000000000..94bf5ef15 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/.env @@ -0,0 +1,3 @@ + +RELEASE=2.0.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.0.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/.env new file mode 100644 index 000000000..76f47386e --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/.env @@ -0,0 +1,3 @@ + +RELEASE=2.0.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.0.5.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/.env new file mode 100644 index 000000000..ad6500ab0 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/.env @@ -0,0 +1,3 @@ + +RELEASE=2.0.6 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.0.6.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/.env new file mode 100644 index 000000000..8a53688ff --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/.env @@ -0,0 +1,3 @@ + +RELEASE=2.1.0.M2cc +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.1.0.M2cc.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/.env new file mode 100644 index 000000000..84b9e6629 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.1.0.RC1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.1.0.RC1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/.env new file mode 100644 index 000000000..da9f328ea --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/.env @@ -0,0 +1,3 @@ + +RELEASE=2.1.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.1.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/.env new file mode 100644 index 000000000..b58495636 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.1.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.1.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/.env new file mode 100644 index 000000000..a2240bd5c --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/.env @@ -0,0 +1,3 @@ + +RELEASE=2.1.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.1.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/.env new file mode 100644 index 000000000..5d256fc5b --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/.env @@ -0,0 +1,3 @@ + +RELEASE=2.1.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.1.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/.env new file mode 100644 index 000000000..11e3f491c --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/.env @@ -0,0 +1,3 @@ + +RELEASE=2.1.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.1.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/.env new file mode 100644 index 000000000..390976cc5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/.env @@ -0,0 +1,3 @@ + +RELEASE=2.10.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.10.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/.env new file mode 100644 index 000000000..57f64a28c --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.10.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.10.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/.env new file mode 100644 index 000000000..532796441 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/.env @@ -0,0 +1,3 @@ + +RELEASE=2.10.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.10.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/.env new file mode 100644 index 000000000..9c77750e7 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/.env @@ -0,0 +1,3 @@ + +RELEASE=2.10.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.10.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/.env new file mode 100644 index 000000000..1674063d6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/.env @@ -0,0 +1,3 @@ + +RELEASE=2.10.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.10.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/.env new file mode 100644 index 000000000..beda9717e --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/.env @@ -0,0 +1,3 @@ + +RELEASE=2.10.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.10.5.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/.env new file mode 100644 index 000000000..2313fc602 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/.env @@ -0,0 +1,3 @@ + +RELEASE=2.10.6 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.10.6.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/.env new file mode 100644 index 000000000..ec759bcee --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/.env @@ -0,0 +1,3 @@ + +RELEASE=2.10.7 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.10.7.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/.env new file mode 100644 index 000000000..e15b6d392 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/.env @@ -0,0 +1,3 @@ + +RELEASE=2.10.8 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.10.8.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/.env new file mode 100644 index 000000000..55110048f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/.env @@ -0,0 +1,3 @@ + +RELEASE=2.2.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.2.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/.env new file mode 100644 index 000000000..1cdb59923 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.2.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.2.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/.env new file mode 100644 index 000000000..5706f96dc --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/.env @@ -0,0 +1,3 @@ + +RELEASE=2.2.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.2.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/.env new file mode 100644 index 000000000..83ade4f92 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/.env @@ -0,0 +1,3 @@ + +RELEASE=2.3.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.3.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/.env new file mode 100644 index 000000000..39664602a --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.3.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.3.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/.env new file mode 100644 index 000000000..e63628c7f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/.env @@ -0,0 +1,3 @@ + +RELEASE=2.3.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.3.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/.env new file mode 100644 index 000000000..76199a669 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/.env @@ -0,0 +1,3 @@ + +RELEASE=2.3.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.3.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/.env new file mode 100644 index 000000000..014d19107 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/.env @@ -0,0 +1,3 @@ + +RELEASE=2.3.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.3.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/.env new file mode 100644 index 000000000..eb650ebd3 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/.env @@ -0,0 +1,3 @@ + +RELEASE=2.3.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.3.5.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/.env new file mode 100644 index 000000000..a983392bb --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/.env @@ -0,0 +1,3 @@ + +RELEASE=2.3.6 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.3.6.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/.env new file mode 100644 index 000000000..bf39d8cdf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/.env @@ -0,0 +1,3 @@ + +RELEASE=2.3.7 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.3.7.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/.env new file mode 100644 index 000000000..3e14eab93 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/.env @@ -0,0 +1,3 @@ + +RELEASE=2.3.8 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.3.8.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/.env new file mode 100644 index 000000000..a4548f80a --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/.env @@ -0,0 +1,3 @@ + +RELEASE=2.4.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.4.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/.env new file mode 100644 index 000000000..a0dc8192e --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.4.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.4.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/.env new file mode 100644 index 000000000..e49445818 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/.env @@ -0,0 +1,3 @@ + +RELEASE=2.4.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.4.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/.env new file mode 100644 index 000000000..a5bd4ffe7 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/.env @@ -0,0 +1,3 @@ + +RELEASE=2.4.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.4.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/.env new file mode 100644 index 000000000..4298309ba --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/.env @@ -0,0 +1,3 @@ + +RELEASE=2.4.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.4.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/.env new file mode 100644 index 000000000..3557d0440 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/.env @@ -0,0 +1,3 @@ + +RELEASE=2.4.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.4.5.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/.env new file mode 100644 index 000000000..a72fcb1d1 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/.env @@ -0,0 +1,3 @@ + +RELEASE=2.4.6 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.4.6.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/.env new file mode 100644 index 000000000..1ee4a3b79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/.env @@ -0,0 +1,3 @@ + +RELEASE=2.5.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.5.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/.env new file mode 100644 index 000000000..075bce268 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.5.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.5.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/.env new file mode 100644 index 000000000..2c36fc568 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/.env @@ -0,0 +1,3 @@ + +RELEASE=2.5.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.5.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/.env new file mode 100644 index 000000000..58730891c --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/.env @@ -0,0 +1,3 @@ + +RELEASE=2.5.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.5.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/.env new file mode 100644 index 000000000..53c77473d --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/.env @@ -0,0 +1,3 @@ + +RELEASE=2.5.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.5.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/.env new file mode 100644 index 000000000..c727ad8ea --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/.env @@ -0,0 +1,3 @@ + +RELEASE=2.5.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.5.5.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/.env new file mode 100644 index 000000000..15ade1f14 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/.env @@ -0,0 +1,3 @@ + +RELEASE=2.5.6 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.5.6.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/.env new file mode 100644 index 000000000..e894f3fe2 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/.env @@ -0,0 +1,3 @@ + +RELEASE=2.5.7 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.5.7.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/.env new file mode 100644 index 000000000..d088cc0b7 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/.env @@ -0,0 +1,3 @@ + +RELEASE=2.5.8 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.5.8.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/.env new file mode 100644 index 000000000..1175a188b --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/.env @@ -0,0 +1,3 @@ + +RELEASE=2.5.9 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.5.9.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/.env new file mode 100644 index 000000000..3864b6548 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/.env @@ -0,0 +1,3 @@ + +RELEASE=2.6.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.6.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/.env new file mode 100644 index 000000000..86671ae1b --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.6.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.6.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/.env new file mode 100644 index 000000000..91d622b11 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/.env @@ -0,0 +1,3 @@ + +RELEASE=2.6.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.6.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/.env new file mode 100644 index 000000000..2352b88cb --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/.env @@ -0,0 +1,3 @@ + +RELEASE=2.6.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.6.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/.env new file mode 100644 index 000000000..fe333de81 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/.env @@ -0,0 +1,3 @@ + +RELEASE=2.6.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.6.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/.env new file mode 100644 index 000000000..4ea40b688 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/.env @@ -0,0 +1,3 @@ + +RELEASE=2.6.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.6.5.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/.env new file mode 100644 index 000000000..92afb3313 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/.env @@ -0,0 +1,3 @@ + +RELEASE=2.6.6 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.6.6.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/.env new file mode 100644 index 000000000..0fbd56caa --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/.env @@ -0,0 +1,3 @@ + +RELEASE=2.6.7 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.6.7.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/.env new file mode 100644 index 000000000..3a6d2e4ef --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/.env @@ -0,0 +1,3 @@ + +RELEASE=2.6.8 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.6.8.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/.env new file mode 100644 index 000000000..70ffb90b0 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/.env @@ -0,0 +1,3 @@ + +RELEASE=2.6.9 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.6.9.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/.env new file mode 100644 index 000000000..cd9e13cbd --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.0-EAP-1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.0-EAP-1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/.env new file mode 100644 index 000000000..a41cfffba --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.0-EAP-2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.0-EAP-2.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/.env new file mode 100644 index 000000000..d471d3a50 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/.env new file mode 100644 index 000000000..e3c1a0e15 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/.env new file mode 100644 index 000000000..3af564275 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.10 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.10.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/.env new file mode 100644 index 000000000..9299bc0cf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.11 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.11.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/.env new file mode 100644 index 000000000..d0dc63400 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.12 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.12.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/.env new file mode 100644 index 000000000..e39e5e5e4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.13 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.13.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/.env new file mode 100644 index 000000000..7e5b79810 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.14 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.14.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/.env new file mode 100644 index 000000000..c97544c9e --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.15 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.15.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/.env new file mode 100644 index 000000000..6b210a2c8 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/.env new file mode 100644 index 000000000..068228e13 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/.env new file mode 100644 index 000000000..20db3d5f7 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/.env new file mode 100644 index 000000000..d8690f40f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.5.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/.env new file mode 100644 index 000000000..6f8f85b36 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.6 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.6.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/.env new file mode 100644 index 000000000..6c0b304a3 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.7 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.7.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/.env new file mode 100644 index 000000000..8fdb84817 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.8 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.8.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/.env new file mode 100644 index 000000000..7888cf497 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/.env @@ -0,0 +1,3 @@ + +RELEASE=2.7.9 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.7.9.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/.env new file mode 100644 index 000000000..c40c75472 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.8.0-m1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.8.0-m1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/.env new file mode 100644 index 000000000..2932de805 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/.env @@ -0,0 +1,3 @@ + +RELEASE=2.8.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.8.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/.env new file mode 100644 index 000000000..7a4ffa6b8 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.8.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.8.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/.env new file mode 100644 index 000000000..a15a063c4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/.env @@ -0,0 +1,3 @@ + +RELEASE=2.8.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.8.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/.env new file mode 100644 index 000000000..b1a55c31a --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/.env @@ -0,0 +1,3 @@ + +RELEASE=2.9.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.9.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/.env new file mode 100644 index 000000000..af27c534a --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/.env @@ -0,0 +1,3 @@ + +RELEASE=2.9.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.9.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/.env new file mode 100644 index 000000000..f2b745c9d --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/.env @@ -0,0 +1,3 @@ + +RELEASE=2.9.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-2.9.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/.env new file mode 100644 index 000000000..0e54202ca --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/.env @@ -0,0 +1,3 @@ + +RELEASE=3.0.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.0.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/.env new file mode 100644 index 000000000..7ea35acda --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/.env @@ -0,0 +1,3 @@ + +RELEASE=3.0.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.0.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/.env new file mode 100644 index 000000000..5a9435537 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/.env @@ -0,0 +1,3 @@ + +RELEASE=3.0.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.0.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/.env new file mode 100644 index 000000000..ffb8637b7 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/.env @@ -0,0 +1,3 @@ + +RELEASE=3.0.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.0.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/.env new file mode 100644 index 000000000..7148f15f3 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/.env @@ -0,0 +1,3 @@ + +RELEASE=3.0.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.0.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/.env new file mode 100644 index 000000000..7464d5e69 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/.env @@ -0,0 +1,3 @@ + +RELEASE=3.1.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.1.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/.env new file mode 100644 index 000000000..111df2c12 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/.env @@ -0,0 +1,3 @@ + +RELEASE=3.1.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.1.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/.env new file mode 100644 index 000000000..bfaf35ed8 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/.env @@ -0,0 +1,3 @@ + +RELEASE=3.1.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.1.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/.env new file mode 100644 index 000000000..af211e4ac --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/.env @@ -0,0 +1,3 @@ + +RELEASE=3.1.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.1.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/.env new file mode 100644 index 000000000..1a7df2bb3 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/.env @@ -0,0 +1,3 @@ + +RELEASE=3.1.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.1.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/.env new file mode 100644 index 000000000..bc45e4d9a --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/.env @@ -0,0 +1,3 @@ + +RELEASE=3.1.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.1.5.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/.env new file mode 100644 index 000000000..37dd08966 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/.env @@ -0,0 +1,3 @@ + +RELEASE=3.1.6 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.1.6.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/.env new file mode 100644 index 000000000..72b5062fe --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/.env @@ -0,0 +1,3 @@ + +RELEASE=3.1.7 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.1.7.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/.env new file mode 100644 index 000000000..f0804c230 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/.env @@ -0,0 +1,3 @@ + +RELEASE=3.10.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.10.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/.env new file mode 100644 index 000000000..ab8e2638b --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/.env @@ -0,0 +1,3 @@ + +RELEASE=3.10.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.10.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/.env new file mode 100644 index 000000000..ce1837b5b --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/.env @@ -0,0 +1,3 @@ + +RELEASE=3.10.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.10.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/.env new file mode 100644 index 000000000..4da70fe3b --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/.env @@ -0,0 +1,3 @@ + +RELEASE=3.10.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.10.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/.env new file mode 100644 index 000000000..9fc230804 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/.env @@ -0,0 +1,3 @@ + +RELEASE=3.2.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.2.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/.env new file mode 100644 index 000000000..0907424e3 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/.env @@ -0,0 +1,3 @@ + +RELEASE=3.2.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.2.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/.env new file mode 100644 index 000000000..fc31c5e1e --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/.env @@ -0,0 +1,3 @@ + +RELEASE=3.2.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.2.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/.env new file mode 100644 index 000000000..8fbf74253 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/.env @@ -0,0 +1,3 @@ + +RELEASE=3.2.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.2.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/.env new file mode 100644 index 000000000..a39b1c14c --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/.env @@ -0,0 +1,3 @@ + +RELEASE=3.2.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.2.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/.env new file mode 100644 index 000000000..35ef1a788 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/.env @@ -0,0 +1,3 @@ + +RELEASE=3.2.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.2.5.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/.env new file mode 100644 index 000000000..351453d62 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/.env @@ -0,0 +1,3 @@ + +RELEASE=3.3.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.3.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/.env new file mode 100644 index 000000000..deffdb2f8 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/.env @@ -0,0 +1,3 @@ + +RELEASE=3.3.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.3.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/.env new file mode 100644 index 000000000..26fe5340f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/.env @@ -0,0 +1,3 @@ + +RELEASE=3.3.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.3.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/.env new file mode 100644 index 000000000..46009a92c --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/.env @@ -0,0 +1,3 @@ + +RELEASE=3.3.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.3.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/.env new file mode 100644 index 000000000..94a1c1d47 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/.env @@ -0,0 +1,3 @@ + +RELEASE=3.3.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.3.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/.env new file mode 100644 index 000000000..c60c561dd --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/.env @@ -0,0 +1,3 @@ + +RELEASE=3.4.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.4.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/.env new file mode 100644 index 000000000..9565a266b --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/.env @@ -0,0 +1,3 @@ + +RELEASE=3.4.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.4.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/.env new file mode 100644 index 000000000..e44650c82 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/.env @@ -0,0 +1,3 @@ + +RELEASE=3.4.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.4.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/.env new file mode 100644 index 000000000..f48da9e6e --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/.env @@ -0,0 +1,3 @@ + +RELEASE=3.4.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.4.5.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/.env new file mode 100644 index 000000000..d5a442720 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/.env @@ -0,0 +1,3 @@ + +RELEASE=3.4.6 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.4.6.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/.env new file mode 100644 index 000000000..f4b84beac --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/.env @@ -0,0 +1,3 @@ + +RELEASE=3.4.7 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.4.7.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/.env new file mode 100644 index 000000000..d0b4b7613 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/.env @@ -0,0 +1,3 @@ + +RELEASE=3.5.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.5.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/.env new file mode 100644 index 000000000..f402ad46d --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/.env @@ -0,0 +1,3 @@ + +RELEASE=3.5.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.5.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/.env new file mode 100644 index 000000000..f3fa76061 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/.env @@ -0,0 +1,3 @@ + +RELEASE=3.5.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.5.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/.env new file mode 100644 index 000000000..ab8be3503 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/.env @@ -0,0 +1,3 @@ + +RELEASE=3.5.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.5.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/.env new file mode 100644 index 000000000..f0659f2a8 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/.env @@ -0,0 +1,3 @@ + +RELEASE=3.5.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.5.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/.env new file mode 100644 index 000000000..6620d8890 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/.env @@ -0,0 +1,3 @@ + +RELEASE=3.5.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.5.5.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/.env new file mode 100644 index 000000000..c16ec55f9 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/.env @@ -0,0 +1,3 @@ + +RELEASE=3.6.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.6.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/.env new file mode 100644 index 000000000..ce7a5816b --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/.env @@ -0,0 +1,3 @@ + +RELEASE=3.6.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.6.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/.env new file mode 100644 index 000000000..1b87324db --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/.env @@ -0,0 +1,3 @@ + +RELEASE=3.6.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.6.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/.env new file mode 100644 index 000000000..237b876ea --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/.env @@ -0,0 +1,3 @@ + +RELEASE=3.6.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.6.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/.env new file mode 100644 index 000000000..7d627b28f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/.env @@ -0,0 +1,3 @@ + +RELEASE=3.6.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.6.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/.env new file mode 100644 index 000000000..8b1834064 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/.env @@ -0,0 +1,3 @@ + +RELEASE=3.7.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.7.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/.env new file mode 100644 index 000000000..7af1999e4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/.env @@ -0,0 +1,3 @@ + +RELEASE=3.7.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.7.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/.env new file mode 100644 index 000000000..b9ff2a8f4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/.env @@ -0,0 +1,3 @@ + +RELEASE=3.8.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.8.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/.env new file mode 100644 index 000000000..1317ea9f3 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/.env @@ -0,0 +1,3 @@ + +RELEASE=3.8.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.8.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/.env new file mode 100644 index 000000000..b67b72ee4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/.env @@ -0,0 +1,3 @@ + +RELEASE=3.9.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.9.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/.env new file mode 100644 index 000000000..c97bfd2b5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/.env @@ -0,0 +1,3 @@ + +RELEASE=3.9.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.9.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/.env new file mode 100644 index 000000000..abb8b54b4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/.env @@ -0,0 +1,3 @@ + +RELEASE=3.9.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-3.9.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/.env new file mode 100644 index 000000000..c8444aaed --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/.env @@ -0,0 +1,3 @@ + +RELEASE=4.0.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.0.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/.env new file mode 100644 index 000000000..8ff330983 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/.env @@ -0,0 +1,3 @@ + +RELEASE=4.0.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.0.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/.env new file mode 100644 index 000000000..8726434dc --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/.env @@ -0,0 +1,3 @@ + +RELEASE=4.0.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.0.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/.env new file mode 100644 index 000000000..d7ceda074 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/.env @@ -0,0 +1,3 @@ + +RELEASE=4.1.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.1.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/.env new file mode 100644 index 000000000..dd9118d58 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/.env @@ -0,0 +1,3 @@ + +RELEASE=4.1.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.1.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/.env new file mode 100644 index 000000000..23d06111e --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/.env @@ -0,0 +1,3 @@ + +RELEASE=4.1.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.1.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/.env new file mode 100644 index 000000000..382f74c0a --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/.env @@ -0,0 +1,3 @@ + +RELEASE=4.1.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.1.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/.env new file mode 100644 index 000000000..78116647a --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/.env @@ -0,0 +1,3 @@ + +RELEASE=4.2.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.2.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/.env new file mode 100644 index 000000000..769cc6f64 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/.env @@ -0,0 +1,3 @@ + +RELEASE=4.2.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.2.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/.env new file mode 100644 index 000000000..360c3089a --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/.env @@ -0,0 +1,3 @@ + +RELEASE=4.2.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.2.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/.env new file mode 100644 index 000000000..84db9d4c1 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/.env @@ -0,0 +1,3 @@ + +RELEASE=4.2.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.2.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/.env new file mode 100644 index 000000000..b2a6ec7a3 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/.env @@ -0,0 +1,3 @@ + +RELEASE=4.3.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.3.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/.env new file mode 100644 index 000000000..3f20ff446 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/.env @@ -0,0 +1,3 @@ + +RELEASE=4.3.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.3.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/.env new file mode 100644 index 000000000..18d001fae --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/.env @@ -0,0 +1,3 @@ + +RELEASE=4.3.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.3.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/.env new file mode 100644 index 000000000..9cb64d3e0 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/.env @@ -0,0 +1,3 @@ + +RELEASE=4.3.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.3.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/.env new file mode 100644 index 000000000..65585361e --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/.env @@ -0,0 +1,3 @@ + +RELEASE=4.4.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.4.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/.env new file mode 100644 index 000000000..47a462c99 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/.env @@ -0,0 +1,3 @@ + +RELEASE=4.4.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.4.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/.env new file mode 100644 index 000000000..3697f5cd2 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/.env @@ -0,0 +1,3 @@ + +RELEASE=4.4.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.4.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/.env new file mode 100644 index 000000000..a94115d5d --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/.env @@ -0,0 +1,3 @@ + +RELEASE=4.4.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.4.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/.env new file mode 100644 index 000000000..22bd3119d --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/.env @@ -0,0 +1,3 @@ + +RELEASE=4.4.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.4.5.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/.env new file mode 100644 index 000000000..929e52514 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/.env @@ -0,0 +1,3 @@ + +RELEASE=4.4.6 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.4.6.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/.env new file mode 100644 index 000000000..b86d4eccc --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/.env @@ -0,0 +1,3 @@ + +RELEASE=4.4.7 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.4.7.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/.env new file mode 100644 index 000000000..99b0f6ac4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/.env @@ -0,0 +1,3 @@ + +RELEASE=4.5.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.5.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/.env new file mode 100644 index 000000000..ac456f740 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/.env @@ -0,0 +1,3 @@ + +RELEASE=4.5.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.5.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/.env new file mode 100644 index 000000000..add195b68 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/.env @@ -0,0 +1,3 @@ + +RELEASE=4.5.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.5.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/.env new file mode 100644 index 000000000..d300002c8 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/.env @@ -0,0 +1,3 @@ + +RELEASE=4.5.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.5.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/.env new file mode 100644 index 000000000..26463d78e --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/.env @@ -0,0 +1,3 @@ + +RELEASE=4.5.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.5.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/.env new file mode 100644 index 000000000..1838c04b6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/.env @@ -0,0 +1,3 @@ + +RELEASE=4.6.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.6.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/.env new file mode 100644 index 000000000..2a94287ed --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/.env @@ -0,0 +1,3 @@ + +RELEASE=4.6.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.6.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/.env new file mode 100644 index 000000000..0e1fcf2a6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/.env @@ -0,0 +1,3 @@ + +RELEASE=4.7.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.7.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/.env new file mode 100644 index 000000000..cb7af87cb --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/.env @@ -0,0 +1,3 @@ + +RELEASE=4.7.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.7.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/.env new file mode 100644 index 000000000..c760b7de3 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/.env @@ -0,0 +1,3 @@ + +RELEASE=4.7.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.7.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/.env new file mode 100644 index 000000000..4073ee327 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/.env @@ -0,0 +1,3 @@ + +RELEASE=4.7.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.7.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/.env new file mode 100644 index 000000000..fe4acccd8 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/.env @@ -0,0 +1,3 @@ + +RELEASE=4.8.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.8.0.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/.env new file mode 100644 index 000000000..3c55bf46e --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/.env @@ -0,0 +1,3 @@ + +RELEASE=4.8.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.8.1.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/.env new file mode 100644 index 000000000..1f020413d --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/.env @@ -0,0 +1,3 @@ + +RELEASE=4.8.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.8.2.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/.env new file mode 100644 index 000000000..d1e9bb0fd --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/.env @@ -0,0 +1,3 @@ + +RELEASE=4.8.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.8.3.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/.env new file mode 100644 index 000000000..b089fcc01 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/.env @@ -0,0 +1,3 @@ + +RELEASE=4.8.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.8.4.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/.env new file mode 100644 index 000000000..c5b045f1b --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/.env @@ -0,0 +1,3 @@ + +RELEASE=4.8.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.8.5.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/.env new file mode 100644 index 000000000..cc3d229c4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/.env @@ -0,0 +1,3 @@ + +RELEASE=4.8.6 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.8.6.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/README.md b/linux/ecosystem/atlassian/fisheye-crucible/README.md new file mode 100644 index 000000000..9cddc1146 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/README.md @@ -0,0 +1,126 @@ +# Atlassian Enterprise releases +## Build info + +All presented images avalible on our repo in docker hub. + + + +## LTS releases: +* Unknown + +------- + +*Some old versions of Bitbucket may fail health check with [AdoptOpenJDK](https://github.com/AdoptOpenJDK) (open source, prebuilt OpenJDK binaries). But it will be works.* + +------- + +![Atlassian Fisheye](https://wac-cdn.atlassian.com/dam/jcr:0785bca2-a166-47ef-aeec-c657e7627af0/Fisheye@2x-blue.png?cdnVersion=363) +![Atlassian Crucible](https://wac-cdn.atlassian.com/dam/jcr:b601a46c-ece6-4cda-94ae-d95b1d94cbfd/Crucible@2x-blue.png?cdnVersion=363) + +With FishEye you can search code, visualize and report on activity and find for commits, files, revisions, or teammates across SVN, Git, Mercurial, CVS and Perforce. + +Atlassian Crucible takes the pain out of code review. Find bugs and improve code quality through peer code review from JIRA or your workflow. + +Learn more about Fisheye: [https://www.atlassian.com/software/fisheye](https://www.atlassian.com/software/fisheye) + +Learn more about Crucible: [https://www.atlassian.com/software/crucible](https://www.atlassian.com/software/crucible) + +# Overview + +This Docker container makes it easy to get an instance of Fisheye/Crucible up and running. + +# Quick Start + +For the `FISHEYE_INST` directory that is used to store the application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. + +To get started you can use a data volume, or named volumes. In this example we'll use named volumes. + + $> docker volume create --name fecruVolume + $> docker run -v fecruVolume:/var/atlassian/application-data/fecru --name="fecru" -d -p 8060:8060 epicmorg/fisheye-crucible + + +**Success**. Fisheye/Crucible is now available on [http://localhost:8060](http://localhost:8060)* + +Please ensure your container has the necessary resources allocated to it. We recommend 1GiB of memory allocated to accommodate the application server. See [Supported Platforms](https://confluence.atlassian.com/fisheye/supported-platforms-298976955.html) for further information. + + +_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8060` instead._ + +## Memory / Heap Size + +If you need to override Fisheye/Crucible's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. + +* `JVM_MINIMUM_MEMORY` (default: NONE) + + The minimum heap size of the JVM + +* `JVM_MAXIMUM_MEMORY` (default: 1024m) + + The maximum heap size of the JVM + + +## JVM configuration + +If you need to pass additional JVM arguments to Fisheye/Crucible, such as specifying a custom trust store, you can add them via the below environment variable + +* `FISHEYE_OPTS` + + Additional JVM arguments for Fisheye/Crucible + +* `JVM_SUPPORT_RECOMMENDED_ARGS` + + Additional JVM arguments for Fisheye/Crucible. These are appended to `FISHEYE_OPTS`; this option exists only for consistency with other Atlassian Docker images. + + +## Other configuration + +Additional configuration options are available to Fisheye/Crucible: + +* `FISHEYE_ARGS` + + The arguments which will be passed to Fisheye when it is started. You can set this to --debug, for example, or --debug-perf if you always want to have Fisheye debugging put into the Fisheye log files. See also [Command line options](https://confluence.atlassian.com/fisheye/command-line-options-298976950.html) + +* `FISHEYE_LIBRARY_PATH` + + Used to tell Fisheye where it should look to load any additional native libraries + + +Example: + + $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/fecru/cacerts -v fecruVolume:/var/atlassian/application-data/fecru --name="fecru" -d -p 8060:8060 epicmorg/fisheye-crucible + +# Upgrade + +To upgrade to a more recent version of Fisheye/Crucible you can simply stop the `fecru` container and start a new one based on a more recent image: + + $> docker stop fecru + $> docker rm fecru + $> docker run ... (See above) + +As your data is stored in the data volume directory on the host it will still be available after the upgrade. + +_Note: Please make sure that you **don't** accidentally remove the `fecru` container and its volumes using the `-v` option._ + +# Backup + +For evaluations you can use the built-in database that will store its files in the Fisheye/Crucible home directory. In that case it is sufficient to create a backup archive of the docker volume. + +If you're using an external database, you can configure Fisheye/Crucible to make a backup automatically each night. This will back up the current state, including the database to the `fecruVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the `FISHEYE_INST` directory. + +Read more about data recovery and backups: [https://confluence.atlassian.com/fisheye/backing-up-and-restoring-fisheye-data-298976928.html](https://confluence.atlassian.com/fisheye/backing-up-and-restoring-fisheye-data-298976928.html) + +# Versioning + +The `latest` tag matches the most recent release of Atlassian Fisheye/Crucible. Thus `epicmorg/fisheye-crucible:latest` will use the newest version of Fisheye/Crucible available. + +Alternatively you can use a specific major, major.minor, or major.minor.patch version of Fisheye/Crucible by using a version number tag: + +* `epicmorg/fisheye-crucible:4` +* `epicmorg/fisheye-crucible:4.6` +* `epicmorg/fisheye-crucible:4.6.1` + +All versions from 3.0+ are available + +# Support + +This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/ecosystem/atlassian/fisheye-crucible/latest/.env b/linux/ecosystem/atlassian/fisheye-crucible/latest/.env new file mode 100644 index 000000000..cc3d229c4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/latest/.env @@ -0,0 +1,3 @@ + +RELEASE=4.8.6 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-4.8.6.zip diff --git a/linux/ecosystem/atlassian/fisheye-crucible/latest/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/latest/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/latest/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/latest/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/latest/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/latest/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/fisheye-crucible/latest/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/latest/docker-compose.yml new file mode 100644 index 000000000..ab81bd97c --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/latest/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:latest" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/latest/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/latest/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/latest/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/templates/2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/templates/2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/templates/2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/templates/2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/fisheye-crucible/templates/2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/templates/2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/templates/2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/templates/2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/templates/3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/templates/3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/templates/3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/templates/3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/fisheye-crucible/templates/3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/templates/3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/templates/3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/templates/3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye-crucible/templates/4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/templates/4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fecru +ENV FISHEYE_INST /var/atlassian/application-data/fecru + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fecru-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye-crucible/templates/4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/templates/4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/fisheye-crucible/templates/4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/templates/4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye-crucible:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye-crucible/templates/4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/templates/4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.0.1a/.env b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/.env new file mode 100644 index 000000000..09774c7f1 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/.env @@ -0,0 +1,3 @@ + +RELEASE=1.0.1a +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.0.1a-build-br78-94.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.0.1a/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.0.1a/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.0.1a/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.0.1a/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.1.3/.env b/linux/ecosystem/atlassian/fisheye/1/1.1.3/.env new file mode 100644 index 000000000..d77c95411 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.1.3/.env @@ -0,0 +1,3 @@ + +RELEASE=1.1.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.1.3-build-1.1-119c.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.1.3/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.1.3/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.1.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.1.3/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.1.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.1.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.1.3/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.1.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.1.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.1.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.1.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.2.5/.env b/linux/ecosystem/atlassian/fisheye/1/1.2.5/.env new file mode 100644 index 000000000..fc6a9304c --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.2.5/.env @@ -0,0 +1,3 @@ + +RELEASE=1.2.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.2.5-build-201.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.2.5/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.2.5/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.2.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.2.5/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.2.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.2.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.2.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.2.5/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.2.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.2.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.2.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.2.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.3/.env b/linux/ecosystem/atlassian/fisheye/1/1.3.3/.env new file mode 100644 index 000000000..c207ee032 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.3/.env @@ -0,0 +1,3 @@ + +RELEASE=1.3.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.3.3.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.3/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.3.3/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.3/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.3.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.3.3/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.3.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.4/.env b/linux/ecosystem/atlassian/fisheye/1/1.3.4/.env new file mode 100644 index 000000000..ad0a606c4 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.4/.env @@ -0,0 +1,3 @@ + +RELEASE=1.3.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.3.4.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.4/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.3.4/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.4/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.3.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.3.4/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.3.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.5/.env b/linux/ecosystem/atlassian/fisheye/1/1.3.5/.env new file mode 100644 index 000000000..0331f045c --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.5/.env @@ -0,0 +1,3 @@ + +RELEASE=1.3.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.3.5.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.5/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.3.5/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.5/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.3.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.3.5/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.3.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.6/.env b/linux/ecosystem/atlassian/fisheye/1/1.3.6/.env new file mode 100644 index 000000000..a3ecceee1 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.6/.env @@ -0,0 +1,3 @@ + +RELEASE=1.3.6 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.3.6.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.6/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.3.6/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.6/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.3.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.3.6/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.3.6/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.6/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.7/.env b/linux/ecosystem/atlassian/fisheye/1/1.3.7/.env new file mode 100644 index 000000000..a78be37ed --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.7/.env @@ -0,0 +1,3 @@ + +RELEASE=1.3.7 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.3.7.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.7/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.3.7/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.7/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.3.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.3.7/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.3.7/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.7/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.8/.env b/linux/ecosystem/atlassian/fisheye/1/1.3.8/.env new file mode 100644 index 000000000..9070c45a9 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.8/.env @@ -0,0 +1,3 @@ + +RELEASE=1.3.8 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.3.8.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.8/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.3.8/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.8/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.3.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.8/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.3.8/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.3.8/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.3.8/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.3.8/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.1/.env b/linux/ecosystem/atlassian/fisheye/1/1.4.1/.env new file mode 100644 index 000000000..59788e4b0 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.1/.env @@ -0,0 +1,3 @@ + +RELEASE=1.4.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.4.1.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.1/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.4.1/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.1/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.4.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.4.1/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.4.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.2/.env b/linux/ecosystem/atlassian/fisheye/1/1.4.2/.env new file mode 100644 index 000000000..b23287179 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.2/.env @@ -0,0 +1,3 @@ + +RELEASE=1.4.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.4.2.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.2/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.4.2/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.2/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.4.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.4.2/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.4.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.3/.env b/linux/ecosystem/atlassian/fisheye/1/1.4.3/.env new file mode 100644 index 000000000..66a7ab561 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.3/.env @@ -0,0 +1,3 @@ + +RELEASE=1.4.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.4.3.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.3/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.4.3/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.3/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.4.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.4.3/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.4.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4/.env b/linux/ecosystem/atlassian/fisheye/1/1.4/.env new file mode 100644 index 000000000..faf2bd26a --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4/.env @@ -0,0 +1,3 @@ + +RELEASE=1.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.4.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.4/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.4/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.1/.env b/linux/ecosystem/atlassian/fisheye/1/1.5.1/.env new file mode 100644 index 000000000..67893f9f5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.1/.env @@ -0,0 +1,3 @@ + +RELEASE=1.5.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.1.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.1/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.5.1/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.1/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.5.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.5.1/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.5.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.2/.env b/linux/ecosystem/atlassian/fisheye/1/1.5.2/.env new file mode 100644 index 000000000..be267994e --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.2/.env @@ -0,0 +1,3 @@ + +RELEASE=1.5.2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.2.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.2/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.5.2/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.2/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.5.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.5.2/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.5.2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.3/.env b/linux/ecosystem/atlassian/fisheye/1/1.5.3/.env new file mode 100644 index 000000000..15528b579 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.3/.env @@ -0,0 +1,3 @@ + +RELEASE=1.5.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.3.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.3/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.5.3/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.3/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.5.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.5.3/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.5.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.4/.env b/linux/ecosystem/atlassian/fisheye/1/1.5.4/.env new file mode 100644 index 000000000..8e56c6a61 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.4/.env @@ -0,0 +1,3 @@ + +RELEASE=1.5.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.4.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.4/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.5.4/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.4/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.5.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.5.4/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.5.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5/.env b/linux/ecosystem/atlassian/fisheye/1/1.5/.env new file mode 100644 index 000000000..89f754df3 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5/.env @@ -0,0 +1,3 @@ + +RELEASE=1.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.5/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.5/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.0/.env new file mode 100644 index 000000000..ed3a4ed14 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.0 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.0.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.0/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.0/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.0/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/.env new file mode 100644 index 000000000..1ba71cecd --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.0Beta1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.0.beta1.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/.env new file mode 100644 index 000000000..3823a8340 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.0Beta2 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.0.beta2.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.1/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.1/.env new file mode 100644 index 000000000..fda976f9b --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.1/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.1 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.1.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.1/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.1/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.1/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.1/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.3/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.3/.env new file mode 100644 index 000000000..5af72704f --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.3/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.3 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.3.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.3/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.3/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.3/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.3/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.3/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.3/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.4/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.4/.env new file mode 100644 index 000000000..fcb63d5f1 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.4/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.4 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.4.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.4/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.4/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.4/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.4/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.4/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.4/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/.env new file mode 100644 index 000000000..8f5135811 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.5.a +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.5.a.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.5/.env new file mode 100644 index 000000000..1adbea3a2 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.5 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.5.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.5/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.5/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.5/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5a/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/.env new file mode 100644 index 000000000..d857ee4cb --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.5a +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.5a.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5a/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5a/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5a/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.5a/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.6/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.6/.env new file mode 100644 index 000000000..f68a90347 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.6/.env @@ -0,0 +1,3 @@ + +RELEASE=1.6.6 +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.6.zip diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.6/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.6/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.6/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.6/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/1/1.6.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.6/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/1/1.6.6/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/fisheye/templates/1/Dockerfile b/linux/ecosystem/atlassian/fisheye/templates/1/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/templates/1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/fisheye/fisheye-folder-layout-298976940.html +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye + +VOLUME ["${FISHEYE_INST}"] +WORKDIR $FISHEYE_INST + +# Expose HTTP port +EXPOSE 8060 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${FISHEYE_HOME} \ + && wget -nv --random-wait -c ${DOWNLOAD_URL} -O /tmp/fisheye-${RELEASE}.zip \ + && unzip -q /tmp/fisheye-${RELEASE}.zip -d /tmp \ + && mv /tmp/fisheye-${RELEASE}/* ${FISHEYE_HOME} \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${FISHEYE_HOME} \ + && chmod +x /usr/bin/p4 \ + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fisheye-${RELEASE} \ + && rm -rfv /var/lib/apt/lists/* \ + && rm -rfv /var/cache/apt/archives/*.deb + +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp + +CMD ["/entrypoint.sh", "run"] +ENTRYPOINT ["/usr/bin/tini", "--"] diff --git a/linux/ecosystem/atlassian/fisheye/templates/1/Makefile b/linux/ecosystem/atlassian/fisheye/templates/1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/templates/1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/fisheye/templates/1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/templates/1/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/templates/1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/fisheye:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/fisheye/templates/1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/templates/1/entrypoint.sh new file mode 100755 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/ecosystem/atlassian/fisheye/templates/1/entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -euo pipefail + +# Set up FISHEYE_OPTS +: ${JVM_MINIMUM_MEMORY:=} +: ${JVM_MAXIMUM_MEMORY:=} +: ${JVM_SUPPORT_RECOMMENDED_ARGS:=} + +: ${FISHEYE_OPTS:=} + +if [ "${JVM_MINIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xms${JVM_MINIMUM_MEMORY}" +fi +if [ "${JVM_MAXIMUM_MEMORY}" != "" ]; then + FISHEYE_OPTS="${FISHEYE_OPTS} -Xmx${JVM_MAXIMUM_MEMORY}" +fi + +export FISHEYE_OPTS="${FISHEYE_OPTS} ${JVM_SUPPORT_RECOMMENDED_ARGS}" + +# Start Bamboo as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${FISHEYE_INST}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${FISHEYE_INST}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${FISHEYE_INST}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$FISHEYE_HOME/bin/fisheyectl.sh $@" +else + exec "$FISHEYE_HOME/bin/fisheyectl.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/.docs/SMT-2493_Update_Table_JavaCommunityPost_600x2085@2x.png b/linux/ecosystem/atlassian/jira/.docs/SMT-2493_Update_Table_JavaCommunityPost_600x2085@2x.png new file mode 100644 index 000000000..8e9d61422 Binary files /dev/null and b/linux/ecosystem/atlassian/jira/.docs/SMT-2493_Update_Table_JavaCommunityPost_600x2085@2x.png differ diff --git a/linux/ecosystem/atlassian/jira/4/4.1.1/.env b/linux/ecosystem/atlassian/jira/4/4.1.1/.env new file mode 100644 index 000000000..4ddb10259 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.1.1/.env @@ -0,0 +1,3 @@ + +RELEASE=4.1.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-enterprise-4.1.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.1.1/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.1.1/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.1.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.1.1/Makefile b/linux/ecosystem/atlassian/jira/4/4.1.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.1.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.1.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.1.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.1.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/6/6.3.15/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.15/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.1.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.1.2/.env b/linux/ecosystem/atlassian/jira/4/4.1.2/.env new file mode 100644 index 000000000..d06527fe3 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.1.2/.env @@ -0,0 +1,3 @@ + +RELEASE=4.1.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-enterprise-4.1.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.1.2/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.1.2/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.1.2/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.1.2/Makefile b/linux/ecosystem/atlassian/jira/4/4.1.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.1.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.1.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.1.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.1.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/6/6.4.14/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.14/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.1.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.2.1/.env b/linux/ecosystem/atlassian/jira/4/4.2.1/.env new file mode 100644 index 000000000..38eabf28e --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.1/.env @@ -0,0 +1,3 @@ + +RELEASE=4.2.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-enterprise-4.2.1-b588.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.2.1/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.2.1/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.2.1/Makefile b/linux/ecosystem/atlassian/jira/4/4.2.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.2.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.2.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.0.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.0.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.2.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.2.2/.env b/linux/ecosystem/atlassian/jira/4/4.2.2/.env new file mode 100644 index 000000000..a66ff82a8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.2/.env @@ -0,0 +1,3 @@ + +RELEASE=4.2.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-enterprise-4.2.2-b589.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.2.2/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.2.2/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.2/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.2.2/Makefile b/linux/ecosystem/atlassian/jira/4/4.2.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.2.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.2.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.0.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.0.10/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.2.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.2.3/.env b/linux/ecosystem/atlassian/jira/4/4.2.3/.env new file mode 100644 index 000000000..adf9e5a86 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.3/.env @@ -0,0 +1,3 @@ + +RELEASE=4.2.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-enterprise-4.2.3-b590.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.2.3/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.2.3/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.3/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.2.3/Makefile b/linux/ecosystem/atlassian/jira/4/4.2.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.2.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.2.3/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.0.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.0.11/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.2.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.2.4/.env b/linux/ecosystem/atlassian/jira/4/4.2.4/.env new file mode 100644 index 000000000..6725affc3 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.4/.env @@ -0,0 +1,3 @@ + +RELEASE=4.2.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-enterprise-4.2.4-b591.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.2.4/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.2.4/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.4/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.2.4/Makefile b/linux/ecosystem/atlassian/jira/4/4.2.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.2.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.2.4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.0.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.0.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.2.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.2/.env b/linux/ecosystem/atlassian/jira/4/4.2/.env new file mode 100644 index 000000000..b9a80805d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2/.env @@ -0,0 +1,3 @@ + +RELEASE=4.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-enterprise-4.2-standalone.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.2/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.2/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.2/Makefile b/linux/ecosystem/atlassian/jira/4/4.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.0.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.0.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.3.1/.env b/linux/ecosystem/atlassian/jira/4/4.3.1/.env new file mode 100644 index 000000000..fae92807a --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.1/.env @@ -0,0 +1,3 @@ + +RELEASE=4.3.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-4.3.1-war.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.3.1/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.3.1/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.3.1/Makefile b/linux/ecosystem/atlassian/jira/4/4.3.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.3.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.3.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.0.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.0.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.3.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.3.2/.env b/linux/ecosystem/atlassian/jira/4/4.3.2/.env new file mode 100644 index 000000000..0388964f8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.2/.env @@ -0,0 +1,3 @@ + +RELEASE=4.3.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-4.3.2-war.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.3.2/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.3.2/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.2/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.3.2/Makefile b/linux/ecosystem/atlassian/jira/4/4.3.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.3.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.3.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.1.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.3.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.3.3/.env b/linux/ecosystem/atlassian/jira/4/4.3.3/.env new file mode 100644 index 000000000..69e9842e9 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.3/.env @@ -0,0 +1,3 @@ + +RELEASE=4.3.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-4.3.3-war.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.3.3/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.3.3/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.3/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.3.3/Makefile b/linux/ecosystem/atlassian/jira/4/4.3.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.3.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.3.3/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.1.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.3.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.3.4/.env b/linux/ecosystem/atlassian/jira/4/4.3.4/.env new file mode 100644 index 000000000..60cdcf2cd --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.4/.env @@ -0,0 +1,3 @@ + +RELEASE=4.3.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-4.3.4-war.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.3.4/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.3.4/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.4/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.3.4/Makefile b/linux/ecosystem/atlassian/jira/4/4.3.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.3.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.3.4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.1.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.10/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.3.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.3/.env b/linux/ecosystem/atlassian/jira/4/4.3/.env new file mode 100644 index 000000000..d211ec967 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3/.env @@ -0,0 +1,3 @@ + +RELEASE=4.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-4.3-war.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.3/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.3/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.3/Makefile b/linux/ecosystem/atlassian/jira/4/4.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.3/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.1.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.4.1/.env b/linux/ecosystem/atlassian/jira/4/4.4.1/.env new file mode 100644 index 000000000..47171665e --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.1/.env @@ -0,0 +1,3 @@ + +RELEASE=4.4.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-4.4.1-war.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.4.1/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.4.1/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.4.1/Makefile b/linux/ecosystem/atlassian/jira/4/4.4.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.4.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.4.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.1.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.4.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.4.3/.env b/linux/ecosystem/atlassian/jira/4/4.4.3/.env new file mode 100644 index 000000000..9e45f4395 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.3/.env @@ -0,0 +1,3 @@ + +RELEASE=4.4.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-4.4.3-war.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.4.3/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.4.3/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.3/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.4.3/Makefile b/linux/ecosystem/atlassian/jira/4/4.4.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.4.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.4.3/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.1.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.4.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.4.4/.env b/linux/ecosystem/atlassian/jira/4/4.4.4/.env new file mode 100644 index 000000000..44fa02cb8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.4/.env @@ -0,0 +1,3 @@ + +RELEASE=4.4.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-4.4.4-war.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.4.4/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.4.4/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.4/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.4.4/Makefile b/linux/ecosystem/atlassian/jira/4/4.4.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.4.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.4.4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.1.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.4.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.4.5/.env b/linux/ecosystem/atlassian/jira/4/4.4.5/.env new file mode 100644 index 000000000..63b406f58 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.5/.env @@ -0,0 +1,3 @@ + +RELEASE=4.4.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-4.4.5-war.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.4.5/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.4.5/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.5/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.4.5/Makefile b/linux/ecosystem/atlassian/jira/4/4.4.5/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.4.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.4.5/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.1.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.4.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.4/.env b/linux/ecosystem/atlassian/jira/4/4.4/.env new file mode 100644 index 000000000..8f4af81e8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4/.env @@ -0,0 +1,3 @@ + +RELEASE=4.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-4.4-war.tar.gz diff --git a/linux/ecosystem/atlassian/jira/4/4.4/Dockerfile b/linux/ecosystem/atlassian/jira/4/4.4/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/4/4.4/Makefile b/linux/ecosystem/atlassian/jira/4/4.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/4/4.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/4/4.4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/7/7.1.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/4/4.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.0.1/.env b/linux/ecosystem/atlassian/jira/5/5.0.1/.env new file mode 100644 index 000000000..3db0c602d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.1/.env @@ -0,0 +1,3 @@ + +RELEASE=5.0.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.0.1/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0.1/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.0.1/Makefile b/linux/ecosystem/atlassian/jira/5/5.0.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.0.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.10.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.10.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.0.2/.env b/linux/ecosystem/atlassian/jira/5/5.0.2/.env new file mode 100644 index 000000000..952bfaa16 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.2/.env @@ -0,0 +1,3 @@ + +RELEASE=5.0.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.0.2/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0.2/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.2/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.0.2/Makefile b/linux/ecosystem/atlassian/jira/5/5.0.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.0.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.10.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.10.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.0.3/.env b/linux/ecosystem/atlassian/jira/5/5.0.3/.env new file mode 100644 index 000000000..45d60e4d2 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.3/.env @@ -0,0 +1,3 @@ + +RELEASE=5.0.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.0.3/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0.3/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.3/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.0.3/Makefile b/linux/ecosystem/atlassian/jira/5/5.0.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.0.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.10.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.10.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.0.4/.env b/linux/ecosystem/atlassian/jira/5/5.0.4/.env new file mode 100644 index 000000000..9769b8f1f --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.4/.env @@ -0,0 +1,3 @@ + +RELEASE=5.0.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.0.4/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0.4/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.4/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.0.4/Makefile b/linux/ecosystem/atlassian/jira/5/5.0.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.0.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.11.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.11.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.0.5/.env b/linux/ecosystem/atlassian/jira/5/5.0.5/.env new file mode 100644 index 000000000..ed3b88cfb --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.5/.env @@ -0,0 +1,3 @@ + +RELEASE=5.0.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.0.5/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0.5/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.5/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.0.5/Makefile b/linux/ecosystem/atlassian/jira/5/5.0.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.0.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.11.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.11.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.0.6/.env b/linux/ecosystem/atlassian/jira/5/5.0.6/.env new file mode 100644 index 000000000..a05dac17d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.6/.env @@ -0,0 +1,3 @@ + +RELEASE=5.0.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.0.6/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0.6/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.6/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.0.6/Makefile b/linux/ecosystem/atlassian/jira/5/5.0.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.0.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.11.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.11.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0.6/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.0.7/.env b/linux/ecosystem/atlassian/jira/5/5.0.7/.env new file mode 100644 index 000000000..d462ade07 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.7/.env @@ -0,0 +1,3 @@ + +RELEASE=5.0.7 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.7.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.0.7/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0.7/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.7/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.0.7/Makefile b/linux/ecosystem/atlassian/jira/5/5.0.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.0.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.12.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.12.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0.7/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.0/.env b/linux/ecosystem/atlassian/jira/5/5.0/.env new file mode 100644 index 000000000..07add1c95 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0/.env @@ -0,0 +1,3 @@ + +RELEASE=5.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.0/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.0/Makefile b/linux/ecosystem/atlassian/jira/5/5.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.12.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.12.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.1.1/.env b/linux/ecosystem/atlassian/jira/5/5.1.1/.env new file mode 100644 index 000000000..10957a878 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.1/.env @@ -0,0 +1,3 @@ + +RELEASE=5.1.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.1.1/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.1/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.1.1/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.1.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.12.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.12.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.1.2/.env b/linux/ecosystem/atlassian/jira/5/5.1.2/.env new file mode 100644 index 000000000..1e7fd1c04 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.2/.env @@ -0,0 +1,3 @@ + +RELEASE=5.1.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.1.2/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.2/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.2/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.1.2/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.1.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.1.3/.env b/linux/ecosystem/atlassian/jira/5/5.1.3/.env new file mode 100644 index 000000000..1d4a0c5f5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.3/.env @@ -0,0 +1,3 @@ + +RELEASE=5.1.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.1.3/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.3/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.3/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.1.3/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.1.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.1.4/.env b/linux/ecosystem/atlassian/jira/5/5.1.4/.env new file mode 100644 index 000000000..81e2ac57d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.4/.env @@ -0,0 +1,3 @@ + +RELEASE=5.1.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.1.4/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.4/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.4/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.1.4/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.1.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.11/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.1.5/.env b/linux/ecosystem/atlassian/jira/5/5.1.5/.env new file mode 100644 index 000000000..55269c5da --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.5/.env @@ -0,0 +1,3 @@ + +RELEASE=5.1.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.1.5/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.5/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.5/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.1.5/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.1.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.12/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.12/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.1.6/.env b/linux/ecosystem/atlassian/jira/5/5.1.6/.env new file mode 100644 index 000000000..b3d091ebd --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.6/.env @@ -0,0 +1,3 @@ + +RELEASE=5.1.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.1.6/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.6/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.6/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.1.6/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.1.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.13/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.13/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.6/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.1.7/.env b/linux/ecosystem/atlassian/jira/5/5.1.7/.env new file mode 100644 index 000000000..64a375869 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.7/.env @@ -0,0 +1,3 @@ + +RELEASE=5.1.7 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.7.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.1.7/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.7/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.7/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.1.7/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.1.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.7/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.1.8/.env b/linux/ecosystem/atlassian/jira/5/5.1.8/.env new file mode 100644 index 000000000..b569fe583 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.8/.env @@ -0,0 +1,3 @@ + +RELEASE=5.1.8 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.8.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.1.8/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.8/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.8/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.1.8/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.1.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.8/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.1/.env b/linux/ecosystem/atlassian/jira/5/5.1/.env new file mode 100644 index 000000000..1b0a81391 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1/.env @@ -0,0 +1,3 @@ + +RELEASE=5.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.1/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.1/Makefile b/linux/ecosystem/atlassian/jira/5/5.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.2.1/.env b/linux/ecosystem/atlassian/jira/5/5.2.1/.env new file mode 100644 index 000000000..d1bb06901 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.1/.env @@ -0,0 +1,3 @@ + +RELEASE=5.2.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.2.1/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.1/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.2.1/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.2.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.2.10/.env b/linux/ecosystem/atlassian/jira/5/5.2.10/.env new file mode 100644 index 000000000..974c60fef --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.10/.env @@ -0,0 +1,3 @@ + +RELEASE=5.2.10 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.10.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.2.10/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.10/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.10/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.2.10/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.10/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.10/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.2.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.10/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.10/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.10/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.10/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.2.11/.env b/linux/ecosystem/atlassian/jira/5/5.2.11/.env new file mode 100644 index 000000000..f8b6f6109 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.11/.env @@ -0,0 +1,3 @@ + +RELEASE=5.2.11 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.11.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.2.11/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.11/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.11/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.2.11/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.11/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.11/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.2.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.11/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.11/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.11/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.11/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.2.2/.env b/linux/ecosystem/atlassian/jira/5/5.2.2/.env new file mode 100644 index 000000000..7f75f0c6c --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.2/.env @@ -0,0 +1,3 @@ + +RELEASE=5.2.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.2.2/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.2/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.2/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.2.2/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.2.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.2.3/.env b/linux/ecosystem/atlassian/jira/5/5.2.3/.env new file mode 100644 index 000000000..4f88f79ee --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.3/.env @@ -0,0 +1,3 @@ + +RELEASE=5.2.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.2.3/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.3/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.3/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.2.3/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.2.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.2.4.1/.env b/linux/ecosystem/atlassian/jira/5/5.2.4.1/.env new file mode 100644 index 000000000..ee8e11d88 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.4.1/.env @@ -0,0 +1,3 @@ + +RELEASE=5.2.4.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.4.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.2.4.1/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.4.1/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.4.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.2.4.1/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.4.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.4.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.2.4.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.4.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.4.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.4.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.4.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.2.4/.env b/linux/ecosystem/atlassian/jira/5/5.2.4/.env new file mode 100644 index 000000000..5d17ba041 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.4/.env @@ -0,0 +1,3 @@ + +RELEASE=5.2.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.2.4/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.4/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.4/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.2.4/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.2.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.10/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.2.5/.env b/linux/ecosystem/atlassian/jira/5/5.2.5/.env new file mode 100644 index 000000000..518f063b8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.5/.env @@ -0,0 +1,3 @@ + +RELEASE=5.2.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.2.5/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.5/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.5/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.2.5/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.2.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.11/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.2.6/.env b/linux/ecosystem/atlassian/jira/5/5.2.6/.env new file mode 100644 index 000000000..e2b39f6d1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.6/.env @@ -0,0 +1,3 @@ + +RELEASE=5.2.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.2.6/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.6/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.6/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.2.6/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.2.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.12/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.12/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.6/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.2.7/.env b/linux/ecosystem/atlassian/jira/5/5.2.7/.env new file mode 100644 index 000000000..9e5196c33 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.7/.env @@ -0,0 +1,3 @@ + +RELEASE=5.2.7 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.7.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.2.7/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.7/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.7/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.2.7/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.2.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.13/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.13/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.7/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.2.8/.env b/linux/ecosystem/atlassian/jira/5/5.2.8/.env new file mode 100644 index 000000000..6aa567db6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.8/.env @@ -0,0 +1,3 @@ + +RELEASE=5.2.8 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.8.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.2.8/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.8/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.8/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.2.8/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.2.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.14/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.14/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.8/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.2.9/.env b/linux/ecosystem/atlassian/jira/5/5.2.9/.env new file mode 100644 index 000000000..37375d00c --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.9/.env @@ -0,0 +1,3 @@ + +RELEASE=5.2.9 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.9.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.2.9/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.9/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.9/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.2.9/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.9/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.2.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.9/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.15/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.15/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.9/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/5/5.2/.env b/linux/ecosystem/atlassian/jira/5/5.2/.env new file mode 100644 index 000000000..5dc551bed --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2/.env @@ -0,0 +1,3 @@ + +RELEASE=5.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/5/5.2/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/5/5.2/Makefile b/linux/ecosystem/atlassian/jira/5/5.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/5/5.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/5/5.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.0.1/.env b/linux/ecosystem/atlassian/jira/6/6.0.1/.env new file mode 100644 index 000000000..4b97e151c --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.0.1/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.1/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.0.1/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.0.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.0.2/.env b/linux/ecosystem/atlassian/jira/6/6.0.2/.env new file mode 100644 index 000000000..42ac1391f --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.0.2/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.2/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.2/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.0.2/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.0.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.0.3/.env b/linux/ecosystem/atlassian/jira/6/6.0.3/.env new file mode 100644 index 000000000..01596b8e3 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.0.3/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.3/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.3/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.0.3/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.0.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.0.4/.env b/linux/ecosystem/atlassian/jira/6/6.0.4/.env new file mode 100644 index 000000000..b33e7b4ad --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.4/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.0.4/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.4/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.4/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.0.4/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.0.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.0.5/.env b/linux/ecosystem/atlassian/jira/6/6.0.5/.env new file mode 100644 index 000000000..e6bb658f8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.5/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.0.5/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.5/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.5/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.0.5/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.0.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.0.6/.env b/linux/ecosystem/atlassian/jira/6/6.0.6/.env new file mode 100644 index 000000000..cff237264 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.6/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.0.6/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.6/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.6/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.0.6/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.0.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.6/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.0.7/.env b/linux/ecosystem/atlassian/jira/6/6.0.7/.env new file mode 100644 index 000000000..3689dfe94 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.7/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.7 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.7.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.0.7/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.7/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.7/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.0.7/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.0.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.7/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.0.8/.env b/linux/ecosystem/atlassian/jira/6/6.0.8/.env new file mode 100644 index 000000000..a8d8c1db6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.8/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0.8 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.8.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.0.8/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.8/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.8/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.0.8/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.0.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.8/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.0/.env b/linux/ecosystem/atlassian/jira/6/6.0/.env new file mode 100644 index 000000000..5a4c8f6ed --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0/.env @@ -0,0 +1,3 @@ + +RELEASE=6.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.0/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.0/Makefile b/linux/ecosystem/atlassian/jira/6/6.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.1.1/.env b/linux/ecosystem/atlassian/jira/6/6.1.1/.env new file mode 100644 index 000000000..462b6c3d3 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.1.1/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.1/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.1.1/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.1.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.1.2/.env b/linux/ecosystem/atlassian/jira/6/6.1.2/.env new file mode 100644 index 000000000..4b2ae3a29 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.1.2/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.2/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.2/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.1.2/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.1.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.1.3/.env b/linux/ecosystem/atlassian/jira/6/6.1.3/.env new file mode 100644 index 000000000..7492d53a9 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.1.3/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.3/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.3/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.1.3/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.1.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.1.4/.env b/linux/ecosystem/atlassian/jira/6/6.1.4/.env new file mode 100644 index 000000000..afe26826b --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.4/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.1.4/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.4/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.4/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.1.4/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.1.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.1.5/.env b/linux/ecosystem/atlassian/jira/6/6.1.5/.env new file mode 100644 index 000000000..d6fa9e9e8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.5/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.1.5/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.5/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.5/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.1.5/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.1.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.1.6/.env b/linux/ecosystem/atlassian/jira/6/6.1.6/.env new file mode 100644 index 000000000..e85e714fa --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.6/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.1.6/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.6/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.6/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.1.6/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.1.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.6/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.1.7/.env b/linux/ecosystem/atlassian/jira/6/6.1.7/.env new file mode 100644 index 000000000..dd3e4ef11 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.7/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1.7 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.7.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.1.7/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.7/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.7/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.1.7/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.1.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.7/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.1.8/.env b/linux/ecosystem/atlassian/jira/6/6.1.8/.env new file mode 100644 index 000000000..dd5ba9a39 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.8/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1.8 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.8.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.1.8/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.8/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.8/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.1.8/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.1.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.4.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.4.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.8/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.1.9/.env b/linux/ecosystem/atlassian/jira/6/6.1.9/.env new file mode 100644 index 000000000..5a324e741 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.9/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1.9 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.9.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.1.9/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.9/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.9/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.1.9/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.9/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.1.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.9/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.4.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.4.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.9/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.1/.env b/linux/ecosystem/atlassian/jira/6/6.1/.env new file mode 100644 index 000000000..90e2ceb4a --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.1/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.1/Makefile b/linux/ecosystem/atlassian/jira/6/6.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.4.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.4.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.2.1/.env b/linux/ecosystem/atlassian/jira/6/6.2.1/.env new file mode 100644 index 000000000..2dbe02959 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.2.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.2.1/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2.1/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.2.1/Makefile b/linux/ecosystem/atlassian/jira/6/6.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.2.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.4.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.4.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.2.2/.env b/linux/ecosystem/atlassian/jira/6/6.2.2/.env new file mode 100644 index 000000000..a6ff9dfd5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.2.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.2.2/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2.2/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.2/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.2.2/Makefile b/linux/ecosystem/atlassian/jira/6/6.2.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.2.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.4.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.4.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.2.3/.env b/linux/ecosystem/atlassian/jira/6/6.2.3/.env new file mode 100644 index 000000000..2fd952377 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.2.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.2.3/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2.3/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.3/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.2.3/Makefile b/linux/ecosystem/atlassian/jira/6/6.2.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.2.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.4.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.4.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.2.4/.env b/linux/ecosystem/atlassian/jira/6/6.2.4/.env new file mode 100644 index 000000000..c92a5299d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.4/.env @@ -0,0 +1,3 @@ + +RELEASE=6.2.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.2.4/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2.4/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.4/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.2.4/Makefile b/linux/ecosystem/atlassian/jira/6/6.2.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.2.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.4.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.4.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.2.5/.env b/linux/ecosystem/atlassian/jira/6/6.2.5/.env new file mode 100644 index 000000000..d59b6c601 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.5/.env @@ -0,0 +1,3 @@ + +RELEASE=6.2.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.2.5/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2.5/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.5/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.2.5/Makefile b/linux/ecosystem/atlassian/jira/6/6.2.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.2.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.5.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.5.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.2.6/.env b/linux/ecosystem/atlassian/jira/6/6.2.6/.env new file mode 100644 index 000000000..a8eb37673 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.6/.env @@ -0,0 +1,3 @@ + +RELEASE=6.2.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.2.6/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2.6/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.6/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.2.6/Makefile b/linux/ecosystem/atlassian/jira/6/6.2.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.2.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.5.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.5.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2.6/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.2.7/.env b/linux/ecosystem/atlassian/jira/6/6.2.7/.env new file mode 100644 index 000000000..f039390c2 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.7/.env @@ -0,0 +1,3 @@ + +RELEASE=6.2.7 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.7.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.2.7/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2.7/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.7/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.2.7/Makefile b/linux/ecosystem/atlassian/jira/6/6.2.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.2.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.5.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.5.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2.7/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.2/.env b/linux/ecosystem/atlassian/jira/6/6.2/.env new file mode 100644 index 000000000..9fe309041 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.2/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.2/Makefile b/linux/ecosystem/atlassian/jira/6/6.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.5.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.5.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3.1/.env b/linux/ecosystem/atlassian/jira/6/6.3.1/.env new file mode 100644 index 000000000..758441be8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3.1/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.1/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3.1/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.5.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.5.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3.10/.env b/linux/ecosystem/atlassian/jira/6/6.3.10/.env new file mode 100644 index 000000000..e6204355d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.10/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.10 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.10.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3.10/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.10/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.10/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3.10/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.10/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.10/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.10/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.10/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.10/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.10/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3.11/.env b/linux/ecosystem/atlassian/jira/6/6.3.11/.env new file mode 100644 index 000000000..11abd60e5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.11/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.11 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.11.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3.11/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.11/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.11/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3.11/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.11/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.11/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.11/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.11/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.11/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.11/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3.12/.env b/linux/ecosystem/atlassian/jira/6/6.3.12/.env new file mode 100644 index 000000000..a93f861c8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.12/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.12 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.12.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3.12/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.12/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.12/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3.12/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.12/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.12/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3.12/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.12/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.12/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.12/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.10/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.12/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3.13/.env b/linux/ecosystem/atlassian/jira/6/6.3.13/.env new file mode 100644 index 000000000..eebe4b2f1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.13/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.13 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.13.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3.13/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.13/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.13/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3.13/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.13/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.13/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3.13/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.13/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.13/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.13/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.11/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.13/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3.14/.env b/linux/ecosystem/atlassian/jira/6/6.3.14/.env new file mode 100644 index 000000000..505f355af --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.14/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.14 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.14.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3.14/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.14/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.14/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3.14/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.14/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.14/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3.14/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.14/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.14/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.12/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.14/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.12/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.14/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3.15/.env b/linux/ecosystem/atlassian/jira/6/6.3.15/.env new file mode 100644 index 000000000..2a22f54f1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.15/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.15 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.15.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3.15/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.15/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.15/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3.15/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.15/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.15/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3.15/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.15/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.15/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.13/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.15/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.13/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.15/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3.3/.env b/linux/ecosystem/atlassian/jira/6/6.3.3/.env new file mode 100644 index 000000000..4bf513141 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3.3/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.3/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.3/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3.3/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.14/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.14/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3.4/.env b/linux/ecosystem/atlassian/jira/6/6.3.4/.env new file mode 100644 index 000000000..8b9acb95a --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.4/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3.4/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.4/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.4/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3.4/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.15/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.15/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3.5/.env b/linux/ecosystem/atlassian/jira/6/6.3.5/.env new file mode 100644 index 000000000..9117b4147 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.5/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3.5/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.5/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.5/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3.5/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.16/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.16/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3.6/.env b/linux/ecosystem/atlassian/jira/6/6.3.6/.env new file mode 100644 index 000000000..5c3649aed --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.6/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3.6/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.6/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.6/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3.6/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.17/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.17/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.6/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3.7/.env b/linux/ecosystem/atlassian/jira/6/6.3.7/.env new file mode 100644 index 000000000..22db89291 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.7/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.7 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.7.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3.7/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.7/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.7/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3.7/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.7/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3.8/.env b/linux/ecosystem/atlassian/jira/6/6.3.8/.env new file mode 100644 index 000000000..97ea130c4 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.8/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.8 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.8.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3.8/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.8/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.8/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3.8/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.8/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3.9/.env b/linux/ecosystem/atlassian/jira/6/6.3.9/.env new file mode 100644 index 000000000..199e8c0d3 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.9/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3.9 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.9.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3.9/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.9/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.9/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3.9/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.9/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.9/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.9/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.3/.env b/linux/ecosystem/atlassian/jira/6/6.3/.env new file mode 100644 index 000000000..74fbdb497 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.3/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.3/Makefile b/linux/ecosystem/atlassian/jira/6/6.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4.1/.env b/linux/ecosystem/atlassian/jira/6/6.4.1/.env new file mode 100644 index 000000000..1c8ed7977 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.1/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4.1/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.1/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.1/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4.1/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4.10/.env b/linux/ecosystem/atlassian/jira/6/6.4.10/.env new file mode 100644 index 000000000..91fdae6a4 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.10/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.10 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.10.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4.10/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.10/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.10/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4.10/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.10/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.10/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.10/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.10/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.10/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.10/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4.11/.env b/linux/ecosystem/atlassian/jira/6/6.4.11/.env new file mode 100644 index 000000000..07deb34e5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.11/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.11 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.11.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4.11/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.11/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.11/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4.11/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.11/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.11/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.11/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.11/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.11/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.11/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4.12/.env b/linux/ecosystem/atlassian/jira/6/6.4.12/.env new file mode 100644 index 000000000..0900b5246 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.12/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.12 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.12.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4.12/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.12/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.12/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4.12/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.12/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.12/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4.12/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.12/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.12/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.7.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.12/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.7.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.12/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4.13/.env b/linux/ecosystem/atlassian/jira/6/6.4.13/.env new file mode 100644 index 000000000..e4fb35e9c --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.13/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.13 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.13.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4.13/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.13/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.13/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4.13/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.13/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.13/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4.13/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.13/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.13/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.7.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.13/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.7.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.13/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4.14/.env b/linux/ecosystem/atlassian/jira/6/6.4.14/.env new file mode 100644 index 000000000..cd870173f --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.14/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.14 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.14.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4.14/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.14/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.14/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4.14/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.14/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.14/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4.14/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.14/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.14/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.7.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.14/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.7.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.14/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4.2/.env b/linux/ecosystem/atlassian/jira/6/6.4.2/.env new file mode 100644 index 000000000..4c294baea --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.2/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4.2/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.2/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.2/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4.2/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.7.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.7.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4.3/.env b/linux/ecosystem/atlassian/jira/6/6.4.3/.env new file mode 100644 index 000000000..1a99a4057 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.3/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4.3/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.3/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.3/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4.3/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.8.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.8.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4.4/.env b/linux/ecosystem/atlassian/jira/6/6.4.4/.env new file mode 100644 index 000000000..bebd0e184 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.4/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4.4/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.4/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.4/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4.4/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.8.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.8.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4.5/.env b/linux/ecosystem/atlassian/jira/6/6.4.5/.env new file mode 100644 index 000000000..3c713ac9e --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.5/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4.5/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.5/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.5/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4.5/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.8.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.8.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4.6/.env b/linux/ecosystem/atlassian/jira/6/6.4.6/.env new file mode 100644 index 000000000..4b9cba14b --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.6/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4.6/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.6/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.6/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4.6/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.8.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.8.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.6/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4.7/.env b/linux/ecosystem/atlassian/jira/6/6.4.7/.env new file mode 100644 index 000000000..c75e6cd68 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.7/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.7 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.7.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4.7/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.7/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.7/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4.7/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.9.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.9.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.7/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4.8/.env b/linux/ecosystem/atlassian/jira/6/6.4.8/.env new file mode 100644 index 000000000..e82c2f232 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.8/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.8 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.8.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4.8/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.8/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.8/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4.8/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.9.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.9.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.8/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4.9/.env b/linux/ecosystem/atlassian/jira/6/6.4.9/.env new file mode 100644 index 000000000..7c474321b --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.9/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4.9 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.9.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4.9/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.9/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.9/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4.9/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.9/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.9/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.0.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.0.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.9/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/6/6.4/.env b/linux/ecosystem/atlassian/jira/6/6.4/.env new file mode 100644 index 000000000..c956a78c3 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4/.env @@ -0,0 +1,3 @@ + +RELEASE=6.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/6/6.4/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/6/6.4/Makefile b/linux/ecosystem/atlassian/jira/6/6.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/ecosystem/atlassian/jira/6/6.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/6/6.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.0.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.0.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.0.0/.env b/linux/ecosystem/atlassian/jira/7/7.0.0/.env new file mode 100644 index 000000000..a427c2fd6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.0/.env @@ -0,0 +1,3 @@ + +RELEASE=7.0.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.0.0-jira-7.0.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.0.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.0.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.0.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.0.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.0.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.0.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.0.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.0.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.0.10/.env b/linux/ecosystem/atlassian/jira/7/7.0.10/.env new file mode 100644 index 000000000..da7304fef --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.10/.env @@ -0,0 +1,3 @@ + +RELEASE=7.0.10 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.0.10-jira-7.0.10.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.0.10/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.0.10/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.10/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.0.10/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.10/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.10/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.0.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.0.10/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.10/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.1.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.10/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.1.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.0.10/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.0.11/.env b/linux/ecosystem/atlassian/jira/7/7.0.11/.env new file mode 100644 index 000000000..163c4d371 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.11/.env @@ -0,0 +1,3 @@ + +RELEASE=7.0.11 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.0.11.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.0.11/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.0.11/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.11/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.0.11/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.11/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.11/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.0.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.0.11/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.11/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.1.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.11/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.1.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.0.11/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.0.2/.env b/linux/ecosystem/atlassian/jira/7/7.0.2/.env new file mode 100644 index 000000000..71f21fe70 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.2/.env @@ -0,0 +1,3 @@ + +RELEASE=7.0.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.0.2-jira-7.0.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.0.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.0.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.0.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.0.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.0.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.1.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.1.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.0.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.0.4/.env b/linux/ecosystem/atlassian/jira/7/7.0.4/.env new file mode 100644 index 000000000..abfad9d05 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.4/.env @@ -0,0 +1,3 @@ + +RELEASE=7.0.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.0.4-jira-7.0.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.0.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.0.4/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.0.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.0.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.0.4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.1.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.1.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.0.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.0.5/.env b/linux/ecosystem/atlassian/jira/7/7.0.5/.env new file mode 100644 index 000000000..98491cbf7 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.5/.env @@ -0,0 +1,3 @@ + +RELEASE=7.0.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.0.5-jira-7.0.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.0.5/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.0.5/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.0.5/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.5/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.0.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.0.5/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.10.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.10.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.0.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.0.9/.env b/linux/ecosystem/atlassian/jira/7/7.0.9/.env new file mode 100644 index 000000000..5c9cf79f2 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.9/.env @@ -0,0 +1,3 @@ + +RELEASE=7.0.9 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-core-7.0.9.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.0.9/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.0.9/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.9/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.0.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.9/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.9/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.0.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.0.9/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.10.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.10.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.0.9/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.1.0-m01/.env b/linux/ecosystem/atlassian/jira/7/7.1.0-m01/.env new file mode 100644 index 000000000..d550fd2c4 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.0-m01/.env @@ -0,0 +1,3 @@ + +RELEASE=7.1.0-m01 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-core-7.1.0-m01.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.1.0-m01/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.0-m01/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.0-m01/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.1.0-m01/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.0-m01/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.0-m01/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.1.0-m01/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.0-m01/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.0-m01/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.11.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.0-m01/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.11.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.0-m01/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.1.0/.env b/linux/ecosystem/atlassian/jira/7/7.1.0/.env new file mode 100644 index 000000000..78136b8b1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.0/.env @@ -0,0 +1,3 @@ + +RELEASE=7.1.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.1.0-jira-7.1.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.1.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.1.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.1.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.11.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.11.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.1.1/.env b/linux/ecosystem/atlassian/jira/7/7.1.1/.env new file mode 100644 index 000000000..cb96db584 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.1/.env @@ -0,0 +1,3 @@ + +RELEASE=7.1.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.1.1-jira-7.1.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.1.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.1.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.1.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.12.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.12.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.1.10/.env b/linux/ecosystem/atlassian/jira/7/7.1.10/.env new file mode 100644 index 000000000..572236ebe --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.10/.env @@ -0,0 +1,3 @@ + +RELEASE=7.1.10 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.1.10.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.1.10/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.10/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.10/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.1.10/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.10/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.10/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.1.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.10/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.10/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.12.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.10/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.12.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.10/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.1.2/.env b/linux/ecosystem/atlassian/jira/7/7.1.2/.env new file mode 100644 index 000000000..c0ccd1af5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.2/.env @@ -0,0 +1,3 @@ + +RELEASE=7.1.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.1.2-jira-7.1.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.1.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.1.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.1.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.2.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.2.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.1.4/.env b/linux/ecosystem/atlassian/jira/7/7.1.4/.env new file mode 100644 index 000000000..8f45920b2 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.4/.env @@ -0,0 +1,3 @@ + +RELEASE=7.1.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.1.4-jira-7.1.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.1.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.4/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.1.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.1.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.2.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.1.6/.env b/linux/ecosystem/atlassian/jira/7/7.1.6/.env new file mode 100644 index 000000000..69298176f --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.6/.env @@ -0,0 +1,3 @@ + +RELEASE=7.1.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.1.6-jira-7.1.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.1.6/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.6/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.1.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.1.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.6/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.2.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.2.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.6/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.1.7/.env b/linux/ecosystem/atlassian/jira/7/7.1.7/.env new file mode 100644 index 000000000..47c1b54f0 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.7/.env @@ -0,0 +1,3 @@ + +RELEASE=7.1.7 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.1.7-jira-7.1.7.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.1.7/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.7/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.1.7/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.7/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.7/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.1.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.7/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.2.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.2.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.7/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.1.8/.env b/linux/ecosystem/atlassian/jira/7/7.1.8/.env new file mode 100644 index 000000000..e9fcfa9c3 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.8/.env @@ -0,0 +1,3 @@ + +RELEASE=7.1.8 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.1.8-jira-7.1.8.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.1.8/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.8/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.1.8/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.8/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.1.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.8/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.2.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.2.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.8/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.1.9/.env b/linux/ecosystem/atlassian/jira/7/7.1.9/.env new file mode 100644 index 000000000..85beec67a --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.9/.env @@ -0,0 +1,3 @@ + +RELEASE=7.1.9 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.1.9.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.1.9/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.9/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.9/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.1.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.9/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.9/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.1.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.9/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.2.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.2.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.9/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.10.0/.env b/linux/ecosystem/atlassian/jira/7/7.10.0/.env new file mode 100644 index 000000000..6a6819366 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.10.0/.env @@ -0,0 +1,3 @@ + +RELEASE=7.10.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.10.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.10.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.10.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.10.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.10.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.10.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.10.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.10.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.10.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.10.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.2.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.10.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.2.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.10.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.10.1/.env b/linux/ecosystem/atlassian/jira/7/7.10.1/.env new file mode 100644 index 000000000..995fb73ff --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.10.1/.env @@ -0,0 +1,3 @@ + +RELEASE=7.10.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.10.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.10.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.10.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.10.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.10.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.10.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.10.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.10.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.10.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.10.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.3.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.10.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.3.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.10.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.10.2/.env b/linux/ecosystem/atlassian/jira/7/7.10.2/.env new file mode 100644 index 000000000..57b595c8e --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.10.2/.env @@ -0,0 +1,3 @@ + +RELEASE=7.10.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.10.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.10.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.10.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.10.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.10.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.10.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.10.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.10.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.10.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.10.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.3.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.10.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.3.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.10.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.11.0/.env b/linux/ecosystem/atlassian/jira/7/7.11.0/.env new file mode 100644 index 000000000..e2664eb16 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.11.0/.env @@ -0,0 +1,3 @@ + +RELEASE=7.11.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.11.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.11.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.11.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.11.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.11.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.11.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.11.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.11.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.11.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.11.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.3.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.11.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.3.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.11.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.11.1/.env b/linux/ecosystem/atlassian/jira/7/7.11.1/.env new file mode 100644 index 000000000..f18c39cf1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.11.1/.env @@ -0,0 +1,3 @@ + +RELEASE=7.11.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.11.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.11.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.11.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.11.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.11.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.11.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.11.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.11.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.11.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.11.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.3.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.11.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.3.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.11.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.11.2/.env b/linux/ecosystem/atlassian/jira/7/7.11.2/.env new file mode 100644 index 000000000..e6cfc58ca --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.11.2/.env @@ -0,0 +1,3 @@ + +RELEASE=7.11.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.11.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.11.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.11.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.11.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.11.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.11.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.11.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.11.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.11.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.11.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.3.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.11.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.3.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.11.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.12.0/.env b/linux/ecosystem/atlassian/jira/7/7.12.0/.env new file mode 100644 index 000000000..b23fa9861 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.12.0/.env @@ -0,0 +1,3 @@ + +RELEASE=7.12.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.12.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.12.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.12.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.12.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.12.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.12.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.12.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.12.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.12.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.12.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.3.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.12.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.3.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.12.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.12.1/.env b/linux/ecosystem/atlassian/jira/7/7.12.1/.env new file mode 100644 index 000000000..c076dcc3a --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.12.1/.env @@ -0,0 +1,3 @@ + +RELEASE=7.12.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.12.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.12.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.12.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.12.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.12.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.12.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.12.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.12.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.12.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.12.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.4.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.12.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.4.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.12.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.12.3/.env b/linux/ecosystem/atlassian/jira/7/7.12.3/.env new file mode 100644 index 000000000..1dce863ee --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.12.3/.env @@ -0,0 +1,3 @@ + +RELEASE=7.12.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.12.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.12.3/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.12.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.12.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.12.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.12.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.12.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.12.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.12.3/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.12.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.4.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.12.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.4.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.12.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.0/.env b/linux/ecosystem/atlassian/jira/7/7.13.0/.env new file mode 100644 index 000000000..fd36990fc --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.0/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.4.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.4.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.0/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.1/.env b/linux/ecosystem/atlassian/jira/7/7.13.1/.env new file mode 100644 index 000000000..cf0f958f7 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.1/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.4.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.4.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.11/.env b/linux/ecosystem/atlassian/jira/7/7.13.11/.env new file mode 100644 index 000000000..46d2ff6b8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.11/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.11 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.11.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.11/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.11/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.11/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.11/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.11/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.11/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.11/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.11/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.5.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.11/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.11/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.12/.env b/linux/ecosystem/atlassian/jira/7/7.13.12/.env new file mode 100644 index 000000000..694512abe --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.12/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.12 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.12.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.12/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.12/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.12/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.12/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.12/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.12/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.12/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.12/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.12/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.5.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.12/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.12/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.13/.env b/linux/ecosystem/atlassian/jira/7/7.13.13/.env new file mode 100644 index 000000000..9308909c6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.13/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.13 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.13.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.13/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.13/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.13/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.13/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.13/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.13/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.13/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.13/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.13/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.5.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.13/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.13/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.14/.env b/linux/ecosystem/atlassian/jira/7/7.13.14/.env new file mode 100644 index 000000000..aa9ef6876 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.14/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.14 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.14.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.14/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.14/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.14/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.14/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.14/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.14/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.14/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.14/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.14/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.5.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.14/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.14/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.15/.env b/linux/ecosystem/atlassian/jira/7/7.13.15/.env new file mode 100644 index 000000000..013f6772f --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.15/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.15 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.15.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.15/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.15/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.15/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.15/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.15/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.15/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.15/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.15/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.15/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.6.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.15/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.6.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.15/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.16/.env b/linux/ecosystem/atlassian/jira/7/7.13.16/.env new file mode 100644 index 000000000..2070f85b4 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.16/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.16 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.16.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.16/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.16/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.16/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.16/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.16/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.16/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.16/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.16/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.16/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.6.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.16/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.6.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.16/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.17/.env b/linux/ecosystem/atlassian/jira/7/7.13.17/.env new file mode 100644 index 000000000..331ba08d4 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.17/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.17 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.17.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.17/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.17/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.17/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.17/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.17/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.17/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.17/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.17/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.17/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.7.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.17/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.7.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.17/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.18/.env b/linux/ecosystem/atlassian/jira/7/7.13.18/.env new file mode 100644 index 000000000..8acdd42c3 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.18/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.18 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.18.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.18/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.18/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.18/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.18/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.18/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.18/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.18/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.18/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.18/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.7.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.18/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.7.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.18/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.2/.env b/linux/ecosystem/atlassian/jira/7/7.13.2/.env new file mode 100644 index 000000000..6aa40c1d6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.2/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.8.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.8.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.2/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.3/.env b/linux/ecosystem/atlassian/jira/7/7.13.3/.env new file mode 100644 index 000000000..82be0f831 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.3/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.3/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.3/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.8.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.8.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.3/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.4/.env b/linux/ecosystem/atlassian/jira/7/7.13.4/.env new file mode 100644 index 000000000..ba50e8fd0 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.4/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.4/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.9.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.9.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.5/.env b/linux/ecosystem/atlassian/jira/7/7.13.5/.env new file mode 100644 index 000000000..61aafd052 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.5/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.5/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.5/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.5/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.5/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.5/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/8/8.9.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.9.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.5/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.6/.env b/linux/ecosystem/atlassian/jira/7/7.13.6/.env new file mode 100644 index 000000000..3b09a74ca --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.6/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.6/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.6/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.6/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/atlassian/jira/latest/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/latest/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.6/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/7/7.13.8/.env b/linux/ecosystem/atlassian/jira/7/7.13.8/.env new file mode 100644 index 000000000..13875b716 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.8/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.8 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.8.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.8/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.8/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.8/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.8/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.8/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.8/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.8/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.13.9/.env b/linux/ecosystem/atlassian/jira/7/7.13.9/.env new file mode 100644 index 000000000..70b1d4b62 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.9/.env @@ -0,0 +1,3 @@ + +RELEASE=7.13.9 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.13.9.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.13.9/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.9/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.9/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.13.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.9/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.9/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.13.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.9/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.9/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.13.9/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.0/.env b/linux/ecosystem/atlassian/jira/7/7.2.0/.env new file mode 100644 index 000000000..d8a03571d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.0/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.1/.env b/linux/ecosystem/atlassian/jira/7/7.2.1/.env new file mode 100644 index 000000000..64e63bdeb --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.1/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.10/.env b/linux/ecosystem/atlassian/jira/7/7.2.10/.env new file mode 100644 index 000000000..1a1159a44 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.10/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.10 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.10.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.10/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.10/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.10/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.10/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.10/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.10/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.10/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.10/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.10/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.10/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.11/.env b/linux/ecosystem/atlassian/jira/7/7.2.11/.env new file mode 100644 index 000000000..1d62b23f6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.11/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.11 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.11.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.11/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.11/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.11/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.11/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.11/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.11/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.11/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.11/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.11/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.11/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.12/.env b/linux/ecosystem/atlassian/jira/7/7.2.12/.env new file mode 100644 index 000000000..ea9cd4ff2 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.12/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.12 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.12.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.12/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.12/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.12/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.12/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.12/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.12/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.12/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.12/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.12/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.12/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.12/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.12/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.13/.env b/linux/ecosystem/atlassian/jira/7/7.2.13/.env new file mode 100644 index 000000000..6851485d7 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.13/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.13 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.13.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.13/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.13/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.13/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.13/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.13/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.13/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.13/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.13/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.13/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.13/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.13/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.13/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.14/.env b/linux/ecosystem/atlassian/jira/7/7.2.14/.env new file mode 100644 index 000000000..67a8e9316 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.14/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.14 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.14.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.14/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.14/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.14/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.14/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.14/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.14/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.14/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.14/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.14/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.14/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.14/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.14/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.15/.env b/linux/ecosystem/atlassian/jira/7/7.2.15/.env new file mode 100644 index 000000000..94a32b914 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.15/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.15 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.15.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.15/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.15/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.15/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.15/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.15/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.15/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.15/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.15/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.15/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.15/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.15/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.15/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.2/.env b/linux/ecosystem/atlassian/jira/7/7.2.2/.env new file mode 100644 index 000000000..e33263206 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.2/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.3/.env b/linux/ecosystem/atlassian/jira/7/7.2.3/.env new file mode 100644 index 000000000..e2b285c89 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.3/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.3/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.3/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.3/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.3/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.4/.env b/linux/ecosystem/atlassian/jira/7/7.2.4/.env new file mode 100644 index 000000000..b34aabd6a --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.4/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.4/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.4/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.4/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.6/.env b/linux/ecosystem/atlassian/jira/7/7.2.6/.env new file mode 100644 index 000000000..8b169462f --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.6/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.6/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.6/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.6/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.6/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.6/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.7/.env b/linux/ecosystem/atlassian/jira/7/7.2.7/.env new file mode 100644 index 000000000..a773ec8c9 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.7/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.7 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.7.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.7/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.7/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.7/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.7/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.7/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.7/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.7/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.7/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.8/.env b/linux/ecosystem/atlassian/jira/7/7.2.8/.env new file mode 100644 index 000000000..4d59c038a --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.8/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.8 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.8.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.8/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.8/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.8/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.8/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.8/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.8/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.8/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.2.9/.env b/linux/ecosystem/atlassian/jira/7/7.2.9/.env new file mode 100644 index 000000000..3c983ba88 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.9/.env @@ -0,0 +1,3 @@ + +RELEASE=7.2.9 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.2.9.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.2.9/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.9/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.9/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.2.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.9/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.9/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.2.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.9/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.9/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.2.9/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.3.0/.env b/linux/ecosystem/atlassian/jira/7/7.3.0/.env new file mode 100644 index 000000000..2056a5abb --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.0/.env @@ -0,0 +1,3 @@ + +RELEASE=7.3.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.3.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.3.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.3.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.3.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.3.1/.env b/linux/ecosystem/atlassian/jira/7/7.3.1/.env new file mode 100644 index 000000000..658f497ce --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.1/.env @@ -0,0 +1,3 @@ + +RELEASE=7.3.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.3.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.3.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.3.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.3.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.3.2/.env b/linux/ecosystem/atlassian/jira/7/7.3.2/.env new file mode 100644 index 000000000..c6a3ef0ad --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.2/.env @@ -0,0 +1,3 @@ + +RELEASE=7.3.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.3.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.3.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.3.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.3.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.3.3/.env b/linux/ecosystem/atlassian/jira/7/7.3.3/.env new file mode 100644 index 000000000..3402d9ecd --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.3/.env @@ -0,0 +1,3 @@ + +RELEASE=7.3.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.3.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.3.3/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.3.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.3.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.3/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.3/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.3/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.3.4/.env b/linux/ecosystem/atlassian/jira/7/7.3.4/.env new file mode 100644 index 000000000..18c3f110f --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.4/.env @@ -0,0 +1,3 @@ + +RELEASE=7.3.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.3.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.3.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.4/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.3.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.3.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.4/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.4/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.3.5/.env b/linux/ecosystem/atlassian/jira/7/7.3.5/.env new file mode 100644 index 000000000..913fd8886 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.5/.env @@ -0,0 +1,3 @@ + +RELEASE=7.3.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.3.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.3.5/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.5/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.3.5/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.5/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.3.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.5/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.5/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.5/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.3.6/.env b/linux/ecosystem/atlassian/jira/7/7.3.6/.env new file mode 100644 index 000000000..8b872d760 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.6/.env @@ -0,0 +1,3 @@ + +RELEASE=7.3.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.3.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.3.6/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.6/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.3.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.3.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.6/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.6/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.6/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.3.7/.env b/linux/ecosystem/atlassian/jira/7/7.3.7/.env new file mode 100644 index 000000000..21452b86f --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.7/.env @@ -0,0 +1,3 @@ + +RELEASE=7.3.7 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.3.7.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.3.7/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.7/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.3.7/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.7/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.7/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.3.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.7/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.7/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.7/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.3.8/.env b/linux/ecosystem/atlassian/jira/7/7.3.8/.env new file mode 100644 index 000000000..b3cb22003 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.8/.env @@ -0,0 +1,3 @@ + +RELEASE=7.3.8 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.3.8.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.3.8/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.8/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.3.8/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.8/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.3.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.8/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.8/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.8/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.3.9/.env b/linux/ecosystem/atlassian/jira/7/7.3.9/.env new file mode 100644 index 000000000..c40bfd9bf --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.9/.env @@ -0,0 +1,3 @@ + +RELEASE=7.3.9 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.3.9.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.3.9/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.9/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.9/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.3.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.9/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.9/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.3.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.9/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.9/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.3.9/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.4.0/.env b/linux/ecosystem/atlassian/jira/7/7.4.0/.env new file mode 100644 index 000000000..f91a8b8ab --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.0/.env @@ -0,0 +1,3 @@ + +RELEASE=7.4.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.4.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.4.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.4.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.4.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.4.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.4.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.4.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.4.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.4.1/.env b/linux/ecosystem/atlassian/jira/7/7.4.1/.env new file mode 100644 index 000000000..b1f58552e --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.1/.env @@ -0,0 +1,3 @@ + +RELEASE=7.4.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.4.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.4.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.4.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.4.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.4.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.4.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.4.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.4.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.4.2/.env b/linux/ecosystem/atlassian/jira/7/7.4.2/.env new file mode 100644 index 000000000..c37353e52 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.2/.env @@ -0,0 +1,3 @@ + +RELEASE=7.4.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.4.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.4.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.4.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.4.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.4.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.4.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.4.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.4.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.4.3/.env b/linux/ecosystem/atlassian/jira/7/7.4.3/.env new file mode 100644 index 000000000..d7e9cfc9d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.3/.env @@ -0,0 +1,3 @@ + +RELEASE=7.4.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.4.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.4.3/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.4.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.4.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.4.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.4.3/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.4.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.4.3/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.3/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.4.4/.env b/linux/ecosystem/atlassian/jira/7/7.4.4/.env new file mode 100644 index 000000000..8d94a5c38 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.4/.env @@ -0,0 +1,3 @@ + +RELEASE=7.4.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.4.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.4.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.4.4/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.4.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.4.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.4.4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.4.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.4.4/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.4/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.4.5/.env b/linux/ecosystem/atlassian/jira/7/7.4.5/.env new file mode 100644 index 000000000..b3df67fc4 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.5/.env @@ -0,0 +1,3 @@ + +RELEASE=7.4.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.4.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.4.5/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.4.5/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.4.5/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.5/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.4.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.4.5/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.4.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.4.5/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.5/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.4.6/.env b/linux/ecosystem/atlassian/jira/7/7.4.6/.env new file mode 100644 index 000000000..982d5e157 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.6/.env @@ -0,0 +1,3 @@ + +RELEASE=7.4.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.4.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.4.6/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.4.6/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.4.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.4.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.4.6/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.4.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.4.6/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.4.6/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.5.0/.env b/linux/ecosystem/atlassian/jira/7/7.5.0/.env new file mode 100644 index 000000000..1353fbb1e --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.0/.env @@ -0,0 +1,3 @@ + +RELEASE=7.5.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.5.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.5.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.5.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.5.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.5.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.5.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.5.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.5.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.5.1/.env b/linux/ecosystem/atlassian/jira/7/7.5.1/.env new file mode 100644 index 000000000..87d4eaef4 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.1/.env @@ -0,0 +1,3 @@ + +RELEASE=7.5.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.5.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.5.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.5.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.5.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.5.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.5.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.5.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.5.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.5.2/.env b/linux/ecosystem/atlassian/jira/7/7.5.2/.env new file mode 100644 index 000000000..6c6983b79 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.2/.env @@ -0,0 +1,3 @@ + +RELEASE=7.5.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.5.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.5.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.5.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.5.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.5.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.5.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.5.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.5.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.5.3/.env b/linux/ecosystem/atlassian/jira/7/7.5.3/.env new file mode 100644 index 000000000..262439205 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.3/.env @@ -0,0 +1,3 @@ + +RELEASE=7.5.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.5.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.5.3/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.5.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.5.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.5.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.5.3/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.5.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.5.3/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.3/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.5.4/.env b/linux/ecosystem/atlassian/jira/7/7.5.4/.env new file mode 100644 index 000000000..24252f5af --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.4/.env @@ -0,0 +1,3 @@ + +RELEASE=7.5.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.5.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.5.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.5.4/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.5.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.5.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.5.4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.5.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.5.4/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.5.4/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.0/.env b/linux/ecosystem/atlassian/jira/7/7.6.0/.env new file mode 100644 index 000000000..ad9fa9c3d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.0/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.1/.env b/linux/ecosystem/atlassian/jira/7/7.6.1/.env new file mode 100644 index 000000000..af9db42e3 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.1/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.10/.env b/linux/ecosystem/atlassian/jira/7/7.6.10/.env new file mode 100644 index 000000000..9151079b0 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.10/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.10 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.10.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.10/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.10/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.10/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.10/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.10/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.10/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.10/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.10/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.10/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.10/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.11/.env b/linux/ecosystem/atlassian/jira/7/7.6.11/.env new file mode 100644 index 000000000..b3ac3642a --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.11/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.11 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.11.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.11/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.11/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.11/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.11/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.11/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.11/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.11/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.11/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.11/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.11/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.12/.env b/linux/ecosystem/atlassian/jira/7/7.6.12/.env new file mode 100644 index 000000000..6e10b6dc2 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.12/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.12 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.12.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.12/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.12/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.12/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.12/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.12/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.12/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.12/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.12/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.12/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.12/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.12/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.12/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.13/.env b/linux/ecosystem/atlassian/jira/7/7.6.13/.env new file mode 100644 index 000000000..5868d6764 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.13/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.13 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.13.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.13/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.13/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.13/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.13/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.13/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.13/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.13/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.13/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.13/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.13/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.13/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.13/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.14/.env b/linux/ecosystem/atlassian/jira/7/7.6.14/.env new file mode 100644 index 000000000..f7bc9e5c2 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.14/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.14 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.14.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.14/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.14/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.14/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.14/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.14/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.14/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.14/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.14/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.14/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.14/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.14/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.14/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.15/.env b/linux/ecosystem/atlassian/jira/7/7.6.15/.env new file mode 100644 index 000000000..804065859 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.15/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.15 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.15.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.15/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.15/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.15/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.15/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.15/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.15/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.15/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.15/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.15/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.15/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.15/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.15/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.16/.env b/linux/ecosystem/atlassian/jira/7/7.6.16/.env new file mode 100644 index 000000000..f8c0c9156 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.16/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.16 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.16.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.16/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.16/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.16/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.16/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.16/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.16/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.16/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.16/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.16/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.16/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.16/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.16/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.17/.env b/linux/ecosystem/atlassian/jira/7/7.6.17/.env new file mode 100644 index 000000000..ea8156ea6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.17/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.17 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.17.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.17/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.17/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.17/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.17/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.17/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.17/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.17/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.17/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.17/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.17/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.17/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.17/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.2/.env b/linux/ecosystem/atlassian/jira/7/7.6.2/.env new file mode 100644 index 000000000..64708172f --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.2/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.3/.env b/linux/ecosystem/atlassian/jira/7/7.6.3/.env new file mode 100644 index 000000000..0408a1947 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.3/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.3/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.3/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.3/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.3/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.4/.env b/linux/ecosystem/atlassian/jira/7/7.6.4/.env new file mode 100644 index 000000000..936089cd8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.4/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.4/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.4/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.4/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.6/.env b/linux/ecosystem/atlassian/jira/7/7.6.6/.env new file mode 100644 index 000000000..5bfa71a33 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.6/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.6/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.6/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.6/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.6/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.6/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.7/.env b/linux/ecosystem/atlassian/jira/7/7.6.7/.env new file mode 100644 index 000000000..7fa016d23 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.7/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.7 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.7.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.7/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.7/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.7/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.7/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.7/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.7/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.7/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.7/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.8/.env b/linux/ecosystem/atlassian/jira/7/7.6.8/.env new file mode 100644 index 000000000..561aacc06 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.8/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.8 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.8.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.8/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.8/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.8/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.8/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.8/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.8/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.8/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.8/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.6.9/.env b/linux/ecosystem/atlassian/jira/7/7.6.9/.env new file mode 100644 index 000000000..fc3d42aab --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.9/.env @@ -0,0 +1,3 @@ + +RELEASE=7.6.9 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.6.9.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.6.9/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.9/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.9/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.6.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.9/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.9/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.6.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.9/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.9/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.9/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.6.9/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.7.0/.env b/linux/ecosystem/atlassian/jira/7/7.7.0/.env new file mode 100644 index 000000000..7033b7ec1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.0/.env @@ -0,0 +1,3 @@ + +RELEASE=7.7.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.7.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.7.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.7.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.7.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.7.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.7.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.7.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.7.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.7.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.7.1/.env b/linux/ecosystem/atlassian/jira/7/7.7.1/.env new file mode 100644 index 000000000..8bca52408 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.1/.env @@ -0,0 +1,3 @@ + +RELEASE=7.7.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.7.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.7.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.7.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.7.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.7.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.7.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.7.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.7.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.7.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.7.2/.env b/linux/ecosystem/atlassian/jira/7/7.7.2/.env new file mode 100644 index 000000000..73d28284f --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.2/.env @@ -0,0 +1,3 @@ + +RELEASE=7.7.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.7.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.7.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.7.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.7.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.7.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.7.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.7.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.7.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.7.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.7.4/.env b/linux/ecosystem/atlassian/jira/7/7.7.4/.env new file mode 100644 index 000000000..c356493e2 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.4/.env @@ -0,0 +1,3 @@ + +RELEASE=7.7.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.7.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.7.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.7.4/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.7.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.7.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.7.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.7.4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.7.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.7.4/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.7.4/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.8.0/.env b/linux/ecosystem/atlassian/jira/7/7.8.0/.env new file mode 100644 index 000000000..f41337f71 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.0/.env @@ -0,0 +1,3 @@ + +RELEASE=7.8.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.8.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.8.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.8.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.8.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.8.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.8.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.8.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.8.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.8.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.8.1/.env b/linux/ecosystem/atlassian/jira/7/7.8.1/.env new file mode 100644 index 000000000..2a764d9d1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.1/.env @@ -0,0 +1,3 @@ + +RELEASE=7.8.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.8.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.8.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.8.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.8.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.8.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.8.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.8.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.8.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.8.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.8.2/.env b/linux/ecosystem/atlassian/jira/7/7.8.2/.env new file mode 100644 index 000000000..8fa75646d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.2/.env @@ -0,0 +1,3 @@ + +RELEASE=7.8.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.8.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.8.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.8.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.8.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.8.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.8.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.8.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.8.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.8.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.8.4/.env b/linux/ecosystem/atlassian/jira/7/7.8.4/.env new file mode 100644 index 000000000..a2879af27 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.4/.env @@ -0,0 +1,3 @@ + +RELEASE=7.8.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.8.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.8.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.8.4/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.8.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.8.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.8.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.8.4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.8.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.8.4/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.8.4/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.9.0/.env b/linux/ecosystem/atlassian/jira/7/7.9.0/.env new file mode 100644 index 000000000..f6b717ead --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.9.0/.env @@ -0,0 +1,3 @@ + +RELEASE=7.9.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.9.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.9.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.9.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.9.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.9.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.9.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.9.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.9.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.9.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.9.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.9.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.9.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.9.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/7/7.9.2/.env b/linux/ecosystem/atlassian/jira/7/7.9.2/.env new file mode 100644 index 000000000..17ccd50c6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.9.2/.env @@ -0,0 +1,3 @@ + +RELEASE=7.9.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.9.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/7/7.9.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.9.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.9.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/7/7.9.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.9.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.9.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/7/7.9.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.9.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.9.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.9.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.9.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.9.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.0.0/.env b/linux/ecosystem/atlassian/jira/8/8.0.0/.env new file mode 100644 index 000000000..2b127f2ae --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.0.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.0.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.0.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.0.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.0.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.0.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.0.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.0.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.0.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.0.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.0.2/.env b/linux/ecosystem/atlassian/jira/8/8.0.2/.env new file mode 100644 index 000000000..c09dca049 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.2/.env @@ -0,0 +1,3 @@ + +RELEASE=8.0.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.0.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.0.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.0.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.0.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.0.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.0.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.0.2/docker-compose.yml new file mode 100644 index 000000000..ed71c1649 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.2/docker-compose.yml @@ -0,0 +1,10 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + diff --git a/linux/ecosystem/atlassian/jira/8/8.0.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.0.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.0.3/.env b/linux/ecosystem/atlassian/jira/8/8.0.3/.env new file mode 100644 index 000000000..bc5b567ed --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.3/.env @@ -0,0 +1,3 @@ + +RELEASE=8.0.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.0.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.0.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.0.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.0.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.0.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.0.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.0.3/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.0.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.0.3/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.0.3/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.1.0/.env b/linux/ecosystem/atlassian/jira/8/8.1.0/.env new file mode 100644 index 000000000..c8ca5ef17 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.1.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.1.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.1.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.1.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.1.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.1.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.1.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.1.0/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.0/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.1.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.1.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.1.1/.env b/linux/ecosystem/atlassian/jira/8/8.1.1/.env new file mode 100644 index 000000000..c05ae07e1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.1.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.1.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.1.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.1.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.1.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.1.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.1.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.1.1/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.1/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.1.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.1.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.1.2/.env b/linux/ecosystem/atlassian/jira/8/8.1.2/.env new file mode 100644 index 000000000..7d604c1cc --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.2/.env @@ -0,0 +1,3 @@ + +RELEASE=8.1.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.1.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.1.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.1.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.1.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.1.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.1.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.1.2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.1.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.1.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.1.3/.env b/linux/ecosystem/atlassian/jira/8/8.1.3/.env new file mode 100644 index 000000000..9faf78da0 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.3/.env @@ -0,0 +1,3 @@ + +RELEASE=8.1.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.1.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.1.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.1.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.1.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.1.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.1.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.1.3/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.1.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.1.3/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.1.3/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.10.0/.env b/linux/ecosystem/atlassian/jira/8/8.10.0/.env new file mode 100644 index 000000000..06545427b --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.10.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.10.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.10.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.10.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.10.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.10.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.10.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.10.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.10.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.10.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.10.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.10.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.10.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.10.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.10.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.10.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.10.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.10.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.10.1/.env b/linux/ecosystem/atlassian/jira/8/8.10.1/.env new file mode 100644 index 000000000..f0303efa3 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.10.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.10.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.10.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.10.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.10.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.10.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.10.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.10.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.10.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.10.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.10.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.10.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.10.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.10.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.10.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.10.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.10.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.10.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.11.0/.env b/linux/ecosystem/atlassian/jira/8/8.11.0/.env new file mode 100644 index 000000000..bc552542b --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.11.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.11.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.11.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.11.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.11.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.11.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.11.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.11.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.11.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.11.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.11.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.11.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.11.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.11.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.11.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.11.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.11.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.11.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.11.1/.env b/linux/ecosystem/atlassian/jira/8/8.11.1/.env new file mode 100644 index 000000000..a0cc199e7 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.11.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.11.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.11.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.11.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.11.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.11.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.11.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.11.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.11.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.11.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.11.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.11.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.11.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.11.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.11.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.11.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.11.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.11.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.12.0/.env b/linux/ecosystem/atlassian/jira/8/8.12.0/.env new file mode 100644 index 000000000..7d3cdd9f5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.12.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.12.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.12.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.12.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.12.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.12.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.12.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.12.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.12.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.12.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.12.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.12.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.12.1/.env b/linux/ecosystem/atlassian/jira/8/8.12.1/.env new file mode 100644 index 000000000..7b14469c4 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.12.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.12.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.12.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.12.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.12.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.12.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.12.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.12.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.12.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.12.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.12.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.12.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.12.2/.env b/linux/ecosystem/atlassian/jira/8/8.12.2/.env new file mode 100644 index 000000000..af18966ef --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.2/.env @@ -0,0 +1,3 @@ + +RELEASE=8.12.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.12.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.12.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.12.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.12.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.12.2/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.2/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.12.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.12.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.12.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.12.2/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.2/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.12.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.12.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.12.3/.env b/linux/ecosystem/atlassian/jira/8/8.12.3/.env new file mode 100644 index 000000000..aadcec757 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.3/.env @@ -0,0 +1,3 @@ + +RELEASE=8.12.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.12.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.12.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.12.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.12.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.12.3/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.3/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.12.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.12.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.12.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.12.3/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.3/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.12.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.12.3/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.12.3/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.13.0/.env b/linux/ecosystem/atlassian/jira/8/8.13.0/.env new file mode 100644 index 000000000..1251e9fd0 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.13.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.13.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.13.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.13.1/.env b/linux/ecosystem/atlassian/jira/8/8.13.1/.env new file mode 100644 index 000000000..d544e2056 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.13.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.13.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.13.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.13.10/.env b/linux/ecosystem/atlassian/jira/8/8.13.10/.env new file mode 100644 index 000000000..0ba9d6f91 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.10/.env @@ -0,0 +1,3 @@ + +RELEASE=8.13.10 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.10.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.13.10/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.10/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.10/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.10/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.10/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.10/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.10/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.10/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.10/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.13.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.10/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.10/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.10/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.10/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.13.11/.env b/linux/ecosystem/atlassian/jira/8/8.13.11/.env new file mode 100644 index 000000000..680af6451 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.11/.env @@ -0,0 +1,3 @@ + +RELEASE=8.13.11 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.11.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.13.11/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.11/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.11/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.11/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.11/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.11/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.11/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.11/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.11/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.13.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.11/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.11/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.11/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.11/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.13.12/.env b/linux/ecosystem/atlassian/jira/8/8.13.12/.env new file mode 100644 index 000000000..ed44a3ef5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.12/.env @@ -0,0 +1,3 @@ + +RELEASE=8.13.12 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.12.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.13.12/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.12/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.12/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.12/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.12/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.12/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.12/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.12/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.12/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.13.12/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.12/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.12/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.12/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.12/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.12/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.13.13/.env b/linux/ecosystem/atlassian/jira/8/8.13.13/.env new file mode 100644 index 000000000..f814057f1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.13/.env @@ -0,0 +1,3 @@ + +RELEASE=8.13.13 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.13.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.13.13/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.13/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.13/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.13/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.13/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.13/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.13/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.13/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.13/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.13.13/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.13/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.13/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.13/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.13/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.13/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.13.2/.env b/linux/ecosystem/atlassian/jira/8/8.13.2/.env new file mode 100644 index 000000000..27b7f82f8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.2/.env @@ -0,0 +1,3 @@ + +RELEASE=8.13.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.13.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.2/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.2/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.13.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.2/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.2/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.13.3/.env b/linux/ecosystem/atlassian/jira/8/8.13.3/.env new file mode 100644 index 000000000..f13de08c6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.3/.env @@ -0,0 +1,3 @@ + +RELEASE=8.13.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.13.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.3/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.3/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.13.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.3/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.3/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.3/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.3/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.13.4/.env b/linux/ecosystem/atlassian/jira/8/8.13.4/.env new file mode 100644 index 000000000..7223b5952 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.4/.env @@ -0,0 +1,3 @@ + +RELEASE=8.13.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.13.4/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.4/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.4/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.4/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.4/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.13.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.4/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.4/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.4/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.4/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.13.5/.env b/linux/ecosystem/atlassian/jira/8/8.13.5/.env new file mode 100644 index 000000000..f98b530d3 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.5/.env @@ -0,0 +1,3 @@ + +RELEASE=8.13.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.13.5/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.5/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.5/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.5/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.5/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.5/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.5/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.13.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.5/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.5/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.5/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.5/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.13.6/.env b/linux/ecosystem/atlassian/jira/8/8.13.6/.env new file mode 100644 index 000000000..0fa64c96b --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.6/.env @@ -0,0 +1,3 @@ + +RELEASE=8.13.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.13.6/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.6/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.6/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.6/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.6/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.6/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.13.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.6/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.6/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.6/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.6/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.13.7/.env b/linux/ecosystem/atlassian/jira/8/8.13.7/.env new file mode 100644 index 000000000..aeb2619a7 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.7/.env @@ -0,0 +1,3 @@ + +RELEASE=8.13.7 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.7.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.13.7/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.7/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.7/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.7/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.7/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.7/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.7/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.7/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.13.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.7/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.7/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.7/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.7/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.13.8/.env b/linux/ecosystem/atlassian/jira/8/8.13.8/.env new file mode 100644 index 000000000..39707adc5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.8/.env @@ -0,0 +1,3 @@ + +RELEASE=8.13.8 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.8.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.13.8/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.8/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.8/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.8/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.8/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.8/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.8/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.13.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.8/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.8/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.8/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.8/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.13.9/.env b/linux/ecosystem/atlassian/jira/8/8.13.9/.env new file mode 100644 index 000000000..0ae21d2dd --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.9/.env @@ -0,0 +1,3 @@ + +RELEASE=8.13.9 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.13.9.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.13.9/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.9/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.9/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.9/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.9/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.9/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.13.9/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.9/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.9/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.13.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.9/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.9/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.9/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.13.9/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.14.0/.env b/linux/ecosystem/atlassian/jira/8/8.14.0/.env new file mode 100644 index 000000000..a474275b4 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.14.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.14.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.14.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.14.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.14.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.14.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.14.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.14.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.14.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.14.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.14.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.14.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.14.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.14.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.14.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.14.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.14.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.14.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.14.1/.env b/linux/ecosystem/atlassian/jira/8/8.14.1/.env new file mode 100644 index 000000000..1fd499014 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.14.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.14.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.14.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.14.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.14.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.14.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.14.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.14.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.14.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.14.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.14.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.14.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.14.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.14.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.14.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.14.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.14.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.14.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.15.0/.env b/linux/ecosystem/atlassian/jira/8/8.15.0/.env new file mode 100644 index 000000000..b0d9a9932 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.15.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.15.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.15.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.15.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.15.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.15.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.15.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.15.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.15.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.15.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.15.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.15.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.15.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.15.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.15.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.15.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.15.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.15.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.15.1/.env b/linux/ecosystem/atlassian/jira/8/8.15.1/.env new file mode 100644 index 000000000..ed62260b1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.15.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.15.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.15.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.15.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.15.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.15.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.15.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.15.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.15.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.15.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.15.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.15.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.15.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.15.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.15.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.15.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.15.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.15.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.16.0/.env b/linux/ecosystem/atlassian/jira/8/8.16.0/.env new file mode 100644 index 000000000..8456f56fc --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.16.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.16.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.16.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.16.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.16.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.16.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.16.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.16.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.16.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.16.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.16.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.16.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.16.1/.env b/linux/ecosystem/atlassian/jira/8/8.16.1/.env new file mode 100644 index 000000000..f3b21a58c --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.16.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.16.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.16.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.16.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.16.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.16.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.16.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.16.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.16.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.16.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.16.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.16.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.16.2/.env b/linux/ecosystem/atlassian/jira/8/8.16.2/.env new file mode 100644 index 000000000..4d36171e3 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.2/.env @@ -0,0 +1,3 @@ + +RELEASE=8.16.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.16.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.16.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.16.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.16.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.16.2/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.2/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.16.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.16.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.16.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.16.2/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.2/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.16.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.16.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.16.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.17.0/.env b/linux/ecosystem/atlassian/jira/8/8.17.0/.env new file mode 100644 index 000000000..a127c6f7b --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.17.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.17.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.17.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.17.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.17.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.17.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.17.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.17.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.17.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.17.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.17.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.17.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.17.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.17.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.17.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.17.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.17.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.17.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.17.1/.env b/linux/ecosystem/atlassian/jira/8/8.17.1/.env new file mode 100644 index 000000000..0aaefcf4d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.17.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.17.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.17.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.17.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.17.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.17.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.17.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.17.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.17.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.17.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.17.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.17.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.17.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.17.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.17.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.17.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.17.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.17.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.18.1/.env b/linux/ecosystem/atlassian/jira/8/8.18.1/.env new file mode 100644 index 000000000..a1b28953a --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.18.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.18.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.18.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.18.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.18.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.18.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.18.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.18.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.18.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.18.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.18.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.18.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.18.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.18.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.18.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.18.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.18.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.18.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.18.2/.env b/linux/ecosystem/atlassian/jira/8/8.18.2/.env new file mode 100644 index 000000000..ef6ecd6c9 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.18.2/.env @@ -0,0 +1,3 @@ + +RELEASE=8.18.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.18.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.18.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.18.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.18.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.18.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.18.2/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.18.2/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.18.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.18.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.18.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.18.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.18.2/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.18.2/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.18.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.18.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.18.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.19.0/.env b/linux/ecosystem/atlassian/jira/8/8.19.0/.env new file mode 100644 index 000000000..8ae6a2bf6 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.19.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.19.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.19.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.19.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.19.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.19.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.19.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.19.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.19.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.19.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.19.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.19.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.19.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.19.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.19.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.19.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.19.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.19.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.19.1/.env b/linux/ecosystem/atlassian/jira/8/8.19.1/.env new file mode 100644 index 000000000..eb7270698 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.19.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.19.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.19.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.19.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.19.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.19.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.19.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.19.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.19.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.19.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.19.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.19.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.19.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.19.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.19.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.19.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.19.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.19.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.2.0/.env b/linux/ecosystem/atlassian/jira/8/8.2.0/.env new file mode 100644 index 000000000..8186fc65d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.2.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.2.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.2.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.2.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.2.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.2.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.2.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.2.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.2.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.2.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.2.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.2.1/.env b/linux/ecosystem/atlassian/jira/8/8.2.1/.env new file mode 100644 index 000000000..e4d9d560c --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.2.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.2.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.2.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.2.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.2.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.2.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.2.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.2.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.2.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.2.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.2.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.2.2/.env b/linux/ecosystem/atlassian/jira/8/8.2.2/.env new file mode 100644 index 000000000..ecce21b1b --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.2/.env @@ -0,0 +1,3 @@ + +RELEASE=8.2.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.2.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.2.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.2.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.2.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.2.2/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.2/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.2.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.2.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.2.2/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.2/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.2.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.2.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.2.3/.env b/linux/ecosystem/atlassian/jira/8/8.2.3/.env new file mode 100644 index 000000000..b81ba31da --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.3/.env @@ -0,0 +1,3 @@ + +RELEASE=8.2.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.2.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.2.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.2.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.2.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.2.3/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.3/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.2.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.2.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.2.3/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.3/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.2.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.2.3/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.3/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.2.4/.env b/linux/ecosystem/atlassian/jira/8/8.2.4/.env new file mode 100644 index 000000000..fb78ea238 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.4/.env @@ -0,0 +1,3 @@ + +RELEASE=8.2.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.2.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.2.4/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.2.4/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.2.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.2.4/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.4/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.2.4/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.2.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.2.4/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.4/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.2.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.2.4/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.4/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.2.5/.env b/linux/ecosystem/atlassian/jira/8/8.2.5/.env new file mode 100644 index 000000000..4cb26072f --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.5/.env @@ -0,0 +1,3 @@ + +RELEASE=8.2.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.2.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.2.5/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.2.5/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.2.5/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.2.5/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.5/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.2.5/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.5/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.2.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.2.5/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.5/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.2.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.2.5/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.5/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.2.6/.env b/linux/ecosystem/atlassian/jira/8/8.2.6/.env new file mode 100644 index 000000000..3f4cffe90 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.6/.env @@ -0,0 +1,3 @@ + +RELEASE=8.2.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.2.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.2.6/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.2.6/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.2.6/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.2.6/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.6/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.2.6/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.2.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.2.6/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.6/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.2.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.2.6/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.2.6/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.20.0/.env b/linux/ecosystem/atlassian/jira/8/8.20.0/.env new file mode 100644 index 000000000..4c0adf9a4 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.20.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.20.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.20.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.20.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.20.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.20.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.20.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.20.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.20.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.20.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.20.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.20.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.20.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.20.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.20.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.20.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.20.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.20.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.20.1/.env b/linux/ecosystem/atlassian/jira/8/8.20.1/.env new file mode 100644 index 000000000..7d0890948 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.20.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.20.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.20.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.20.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.20.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.20.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.20.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.20.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.20.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.20.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.20.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.20.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.20.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.20.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.20.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.20.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.20.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.20.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.3.0/.env b/linux/ecosystem/atlassian/jira/8/8.3.0/.env new file mode 100644 index 000000000..0216992f4 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.3.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.3.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.3.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.3.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.3.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.3.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.3.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.3.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.3.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.3.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.3.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.3.1/.env b/linux/ecosystem/atlassian/jira/8/8.3.1/.env new file mode 100644 index 000000000..4138b3a7e --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.3.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.3.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.3.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.3.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.3.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.3.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.3.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.3.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.3.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.3.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.3.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.3.2/.env b/linux/ecosystem/atlassian/jira/8/8.3.2/.env new file mode 100644 index 000000000..45f038a20 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.2/.env @@ -0,0 +1,3 @@ + +RELEASE=8.3.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.3.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.3.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.3.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.3.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.3.2/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.2/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.3.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.3.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.3.2/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.2/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.3.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.3.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.3.3/.env b/linux/ecosystem/atlassian/jira/8/8.3.3/.env new file mode 100644 index 000000000..46646cbf0 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.3/.env @@ -0,0 +1,3 @@ + +RELEASE=8.3.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.3.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.3.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.3.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.3.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.3.3/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.3/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.3.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.3.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.3.3/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.3/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.3.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.3.3/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.3/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.3.4/.env b/linux/ecosystem/atlassian/jira/8/8.3.4/.env new file mode 100644 index 000000000..a5baa0514 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.4/.env @@ -0,0 +1,3 @@ + +RELEASE=8.3.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.3.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.3.4/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.3.4/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.3.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.3.4/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.4/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.3.4/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.3.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.3.4/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.4/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.3.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.3.4/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.4/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.3.5/.env b/linux/ecosystem/atlassian/jira/8/8.3.5/.env new file mode 100644 index 000000000..f074992fa --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.5/.env @@ -0,0 +1,3 @@ + +RELEASE=8.3.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.3.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.3.5/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.3.5/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.3.5/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.3.5/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.5/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.3.5/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.5/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.3.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.3.5/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.5/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.3.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.3.5/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.3.5/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.4.0/.env b/linux/ecosystem/atlassian/jira/8/8.4.0/.env new file mode 100644 index 000000000..24c141081 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.4.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.4.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.4.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.4.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.4.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.4.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.4.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.4.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.4.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.4.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.4.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.4.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.4.1/.env b/linux/ecosystem/atlassian/jira/8/8.4.1/.env new file mode 100644 index 000000000..33a722aa9 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.4.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.4.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.4.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.4.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.4.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.4.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.4.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.4.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.4.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.4.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.4.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.4.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.4.2/.env b/linux/ecosystem/atlassian/jira/8/8.4.2/.env new file mode 100644 index 000000000..4958ef37d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.2/.env @@ -0,0 +1,3 @@ + +RELEASE=8.4.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.4.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.4.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.4.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.4.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.4.2/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.2/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.4.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.4.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.4.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.4.2/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.2/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.4.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.4.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.4.3/.env b/linux/ecosystem/atlassian/jira/8/8.4.3/.env new file mode 100644 index 000000000..82c7a1734 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.3/.env @@ -0,0 +1,3 @@ + +RELEASE=8.4.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.4.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.4.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.4.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.4.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.4.3/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.3/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.4.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.4.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.4.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.4.3/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.3/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.4.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.4.3/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.4.3/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.0/.env b/linux/ecosystem/atlassian/jira/8/8.5.0/.env new file mode 100644 index 000000000..0f523d9b4 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.1/.env b/linux/ecosystem/atlassian/jira/8/8.5.1/.env new file mode 100644 index 000000000..21a61a85b --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.10/.env b/linux/ecosystem/atlassian/jira/8/8.5.10/.env new file mode 100644 index 000000000..3243ca5b4 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.10/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.10 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.10.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.10/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.10/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.10/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.10/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.10/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.10/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.10/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.10/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.10/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.10/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.10/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.10/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.10/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.11/.env b/linux/ecosystem/atlassian/jira/8/8.5.11/.env new file mode 100644 index 000000000..d3025f9e9 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.11/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.11 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.11.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.11/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.11/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.11/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.11/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.11/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.11/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.11/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.11/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.11/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.11/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.11/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.11/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.11/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.12/.env b/linux/ecosystem/atlassian/jira/8/8.5.12/.env new file mode 100644 index 000000000..ec8f898c3 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.12/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.12 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.12.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.12/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.12/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.12/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.12/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.12/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.12/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.12/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.12/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.12/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.12/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.12/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.12/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.12/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.12/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.12/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.13/.env b/linux/ecosystem/atlassian/jira/8/8.5.13/.env new file mode 100644 index 000000000..caff9188f --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.13/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.13 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.13.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.13/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.13/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.13/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.13/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.13/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.13/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.13/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.13/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.13/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.13/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.13/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.13/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.13/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.13/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.13/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.14/.env b/linux/ecosystem/atlassian/jira/8/8.5.14/.env new file mode 100644 index 000000000..45363ab48 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.14/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.14 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.14.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.14/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.14/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.14/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.14/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.14/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.14/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.14/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.14/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.14/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.14/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.14/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.14/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.14/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.14/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.14/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.15/.env b/linux/ecosystem/atlassian/jira/8/8.5.15/.env new file mode 100644 index 000000000..7fc2bbf2c --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.15/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.15 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.15.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.15/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.15/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.15/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.15/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.15/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.15/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.15/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.15/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.15/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.15/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.15/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.15/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.15/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.15/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.15/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.16/.env b/linux/ecosystem/atlassian/jira/8/8.5.16/.env new file mode 100644 index 000000000..c56758baa --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.16/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.16 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.16.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.16/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.16/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.16/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.16/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.16/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.16/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.16/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.16/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.16/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.16/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.16/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.16/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.16/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.16/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.16/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.17/.env b/linux/ecosystem/atlassian/jira/8/8.5.17/.env new file mode 100644 index 000000000..cab1b50b9 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.17/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.17 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.17.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.17/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.17/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.17/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.17/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.17/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.17/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.17/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.17/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.17/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.17/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.17/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.17/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.17/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.17/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.17/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.18/.env b/linux/ecosystem/atlassian/jira/8/8.5.18/.env new file mode 100644 index 000000000..f30cdc0b4 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.18/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.18 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.18.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.18/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.18/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.18/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.18/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.18/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.18/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.18/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.18/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.18/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.18/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.18/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.18/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.18/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.18/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.18/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.19/.env b/linux/ecosystem/atlassian/jira/8/8.5.19/.env new file mode 100644 index 000000000..c5add83d3 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.19/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.19 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.19.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.19/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.19/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.19/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.19/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.19/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.19/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.19/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.19/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.19/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.19/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.19/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.19/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.19/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.19/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.19/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.2/.env b/linux/ecosystem/atlassian/jira/8/8.5.2/.env new file mode 100644 index 000000000..3bb8ec0a5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.2/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.2 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.2.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.2/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.2/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.2/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.2/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.2/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.3/.env b/linux/ecosystem/atlassian/jira/8/8.5.3/.env new file mode 100644 index 000000000..31cefc43f --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.3/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.3 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.3.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.3/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.3/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.3/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.3/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.3/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.3/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.3/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.3/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.4/.env b/linux/ecosystem/atlassian/jira/8/8.5.4/.env new file mode 100644 index 000000000..df5447f55 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.4/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.4 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.4.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.4/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.4/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.4/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.4/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.4/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.4/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.4/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.4/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.4/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.4/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.5/.env b/linux/ecosystem/atlassian/jira/8/8.5.5/.env new file mode 100644 index 000000000..146fc224e --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.5/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.5 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.5.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.5/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.5/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.5/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.5/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.5/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.5/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.5/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.5/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.5/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.5/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.5/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.5/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.6/.env b/linux/ecosystem/atlassian/jira/8/8.5.6/.env new file mode 100644 index 000000000..ebeba348f --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.6/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.6 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.6.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.6/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.6/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.6/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.6/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.6/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.6/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.6/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.6/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.6/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.6/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.6/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.7/.env b/linux/ecosystem/atlassian/jira/8/8.5.7/.env new file mode 100644 index 000000000..6ef4a2bf2 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.7/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.7 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.7.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.7/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.7/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.7/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.7/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.7/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.7/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.7/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.7/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.7/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.7/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.7/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.7/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.8/.env b/linux/ecosystem/atlassian/jira/8/8.5.8/.env new file mode 100644 index 000000000..f7dc343a8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.8/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.8 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.8.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.8/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.8/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.8/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.8/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.8/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.8/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.8/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.8/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.8/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.8/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.8/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.5.9/.env b/linux/ecosystem/atlassian/jira/8/8.5.9/.env new file mode 100644 index 000000000..43b6cb5de --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.9/.env @@ -0,0 +1,3 @@ + +RELEASE=8.5.9 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.5.9.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.5.9/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.9/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.9/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.9/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.9/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.9/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.5.9/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.9/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.9/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.5.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.9/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.9/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.9/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.5.9/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.6.0/.env b/linux/ecosystem/atlassian/jira/8/8.6.0/.env new file mode 100644 index 000000000..6dab47be7 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.6.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.6.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.6.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.6.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.6.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.6.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.6.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.6.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.6.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.6.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.6.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.6.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.6.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.6.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.6.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.6.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.6.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.6.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.6.1/.env b/linux/ecosystem/atlassian/jira/8/8.6.1/.env new file mode 100644 index 000000000..edda59f4d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.6.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.6.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.6.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.6.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.6.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.6.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.6.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.6.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.6.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.6.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.6.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.6.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.6.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.6.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.6.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.6.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.6.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.6.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.7.0/.env b/linux/ecosystem/atlassian/jira/8/8.7.0/.env new file mode 100644 index 000000000..ce46988d9 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.7.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.7.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.7.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.7.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.7.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.7.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.7.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.7.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.7.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.7.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.7.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.7.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.7.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.7.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.7.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.7.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.7.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.7.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.7.1/.env b/linux/ecosystem/atlassian/jira/8/8.7.1/.env new file mode 100644 index 000000000..f01c054dd --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.7.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.7.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.7.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.7.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.7.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.7.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.7.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.7.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.7.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.7.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.7.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.7.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.7.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.7.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.7.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.7.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.7.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.7.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.8.0/.env b/linux/ecosystem/atlassian/jira/8/8.8.0/.env new file mode 100644 index 000000000..b03224376 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.8.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.8.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.8.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.8.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.8.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.8.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.8.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.8.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.8.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.8.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.8.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.8.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.8.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.8.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.8.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.8.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.8.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.8.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.8.1/.env b/linux/ecosystem/atlassian/jira/8/8.8.1/.env new file mode 100644 index 000000000..ffae5db84 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.8.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.8.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.8.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.8.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.8.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.8.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.8.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.8.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.8.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.8.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.8.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.8.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.8.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.8.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.8.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.8.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.8.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.8.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.9.0/.env b/linux/ecosystem/atlassian/jira/8/8.9.0/.env new file mode 100644 index 000000000..e8c594a06 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.9.0/.env @@ -0,0 +1,3 @@ + +RELEASE=8.9.0 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.9.0.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.9.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.9.0/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.9.0/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.9.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.9.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.9.0/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.9.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.9.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.9.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.9.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.9.0/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.9.0/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.9.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.9.0/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.9.0/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/8/8.9.1/.env b/linux/ecosystem/atlassian/jira/8/8.9.1/.env new file mode 100644 index 000000000..1b6d8995e --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.9.1/.env @@ -0,0 +1,3 @@ + +RELEASE=8.9.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.9.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/8/8.9.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.9.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.9.1/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.9.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.9.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.9.1/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/8/8.9.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.9.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.9.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/8/8.9.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.9.1/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.9.1/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.9.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.9.1/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/8/8.9.1/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/README.md b/linux/ecosystem/atlassian/jira/README.md new file mode 100644 index 000000000..10b89190a --- /dev/null +++ b/linux/ecosystem/atlassian/jira/README.md @@ -0,0 +1,168 @@ +# Atlassian Enterprise releases +## Build info + +All presented images avalible on our repo in docker hub. + +## LTS releases: +* Latest version of `Jira 8` branch is `8.5.3` + * Older version of `Jira 8` branch is `8.5.0` +* Latest version of `Jira 7` branch is `7.13.11` + * Older version of `Jira 7` branch is `7.6.17` + +------- + +*Some old versions of Jira may fail health check with [AdoptOpenJDK](https://github.com/AdoptOpenJDK) (open source, prebuilt OpenJDK binaries). But it will be works.* + +------- + +![Atlassian JIRA](https://www.atlassian.com/dam/wac/legacy/jira_logo_landing.png) + +JIRA Software is a software development tool used by agile teams. + +Learn more about JIRA Software: + +# Overview + +This Docker container makes it easy to get an instance of JIRA Software up and running. + +# Quick Start + +For the `JIRA_HOME` directory that is used to store application data (amongst other things) we recommend mounting a host directory as a [data volume](https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes), or via a named volume if using a docker version >= 1.9. + +To get started you can use a data volume, or named volumes. In this example we'll use named volumes. + + $> docker volume create --name jiraVolume + $> docker run -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira + + +**Success**. JIRA is now available on [http://localhost:8080](http://localhost:8080)* + +Please ensure your container has the necessary resources allocated to it. We recommend 2GiB of memory allocated to accommodate the application server. See [System Requirements](https://confluence.atlassian.com/adminjiraserver071/jira-applications-installation-requirements-802592164.html) for further information. + + +_* Note: If you are using `docker-machine` on Mac OS X, please use `open http://$(docker-machine ip default):8080` instead._ + +## Memory / Heap Size + +If you need to override JIRA's default memory allocation, you can control the minimum heap (Xms) and maximum heap (Xmx) via the below environment variables. + +* `JVM_MINIMUM_MEMORY` (default: 384m) + + The minimum heap size of the JVM + +* `JVM_MAXIMUM_MEMORY` (default: 768m) + + The maximum heap size of the JVM + +## Reverse Proxy Settings + +If JIRA is run behind a reverse proxy server as [described here](https://confluence.atlassian.com/adminjiraserver072/integrating-jira-with-apache-using-ssl-828788158.html), then you need to specify extra options to make JIRA aware of the setup. They can be controlled via the below environment variables. + +* `CATALINA_CONNECTOR_PROXYNAME` (default: NONE) + + The reverse proxy's fully qualified hostname. + +* `CATALINA_CONNECTOR_PROXYPORT` (default: NONE) + + The reverse proxy's port number via which JIRA is accessed. + +* `CATALINA_CONNECTOR_SCHEME` (default: http) + + The protocol via which JIRA is accessed. + +* `CATALINA_CONNECTOR_SECURE` (default: false) + + Set 'true' if CATALINA_CONNECTOR_SCHEME is 'https'. + +## JVM configuration + +If you need to pass additional JVM arguments to JIRA, such as specifying a custom trust store, you can add them via the below environment variable + +* `JVM_SUPPORT_RECOMMENDED_ARGS` + + Additional JVM arguments for JIRA + +Example: + + $> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/jira/cacerts -v jiraVolume:/var/atlassian/application-data/jira --name="jira" -d -p 8080:8080 epicmorg/jira + +## Data Center configuration + +This docker image can be run as part of a [Data Center](https://confluence.atlassian.com/enterprise/jira-data-center-472219731.html) cluster. You can specify the following properties to start Jira as a Data Center node, instead of manually configuring a cluster.properties file, See [Installing Jira Data Center](https://confluence.atlassian.com/adminjiraserver071/installing-jira-data-center-802592197.html) for more information on each property and its possible configuration. + +* `CLUSTERED` (default: false) + + Set 'true' to enable clustering configuration to be used. This will create a **cluster.properties** file inside the container's `$JIRA_HOME` directory. + +* `JIRA_NODE_ID` (default: jira_node_) + + The unique ID for the node. By default, this will include the first eight characters of the Docker container ID, but can be overridden with a custom value. + +* `JIRA_SHARED_HOME` (default: $JIRA_HOME/shared) + + The location of the shared home directory for all Jira nodes. + +* `EHCACHE_PEER_DISCOVERY` (default: default) + + Describes how nodes find each other. + +* `EHCACHE_LISTENER_HOSTNAME` (default: NONE) + + The hostname of the current node for cache communication. Jira Data Center will resolve this this internally if the parameter isn't set. + +* `EHCACHE_LISTENER_PORT` (default: 40001) + + The port the node is going to be listening to. + +* `EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS` (default: 2000) + + The default timeout for the Ehcache listener. + +* `EHCACHE_MULTICAST_ADDRESS` (default: NONE) + + A valid multicast group address. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. + +* `EHCACHE_MULTICAST_PORT` (default: NONE) + + The dedicated port for the multicast heartbeat traffic.Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. + +* `EHCACHE_MULTICAST_TIMETOLIVE` (default: NONE) + + A value between 0 and 255 which determines how far the packets will propagate. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. + +* `EHCACHE_MULTICAST_HOSTNAME` (default: NONE) + + The hostname or IP of the interface to be used for sending and receiving multicast packets. Required when EHCACHE_PEER_DISCOVERY is set to 'automatic' insted of 'default'. + +# Upgrade + +To upgrade to a more recent version of JIRA you can simply stop the `jira` container and start a new one based on a more recent image: + + $> docker stop jira + $> docker rm jira + $> docker run ... (See above) + +As your data is stored in the data volume directory on the host it will still be available after the upgrade. + +_Note: Please make sure that you **don't** accidentally remove the `jira` container and its volumes using the `-v` option._ + +# Backup + +For evaluations you can use the built-in database that will store its files in the JIRA home directory. In that case it is sufficient to create a backup archive of the docker volume. + +If you're using an external database, you can configure JIRA to make a backup automatically each night. This will back up the current state, including the database to the `jiraVolume` docker volume, which can then be archived. Alternatively you can backup the database separately, and continue to create a backup archive of the docker volume to back up the JIRA Home directory. + +Read more about data recovery and backups: [https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html](https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html) + +# Versioning + +The `latest` tag matches the most recent release of Atlassian JIRA Software. Thus `epicmorg/jira:latest` will use the newest version of JIRA available. + +## Versions available + +* `epicmorg/jira:latest` +* another like sub-directories names (like `7.10.0`, `8.16.1`, etc) + +# Support + +This Docker container is unsupported and is intended for illustration purposes only. diff --git a/linux/ecosystem/atlassian/jira/latest/.env b/linux/ecosystem/atlassian/jira/latest/.env new file mode 100644 index 000000000..0aaefcf4d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/latest/.env @@ -0,0 +1,3 @@ + +RELEASE=8.17.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.17.1.tar.gz diff --git a/linux/ecosystem/atlassian/jira/latest/Dockerfile b/linux/ecosystem/atlassian/jira/latest/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/latest/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/latest/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/latest/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/latest/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/latest/Makefile b/linux/ecosystem/atlassian/jira/latest/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/latest/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/latest/docker-compose.yml b/linux/ecosystem/atlassian/jira/latest/docker-compose.yml new file mode 100644 index 000000000..89548e5ac --- /dev/null +++ b/linux/ecosystem/atlassian/jira/latest/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:latest" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:latest-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/atlassian/jira/latest/entrypoint.sh b/linux/ecosystem/atlassian/jira/latest/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/latest/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/templates/2/Dockerfile b/linux/ecosystem/atlassian/jira/templates/2/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/2/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/templates/2/Makefile b/linux/ecosystem/atlassian/jira/templates/2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/templates/2/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/2/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/2/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/templates/2/entrypoint.sh b/linux/ecosystem/atlassian/jira/templates/2/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/2/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/templates/3/Dockerfile b/linux/ecosystem/atlassian/jira/templates/3/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/3/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/templates/3/Makefile b/linux/ecosystem/atlassian/jira/templates/3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/templates/3/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/3/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/3/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/templates/3/entrypoint.sh b/linux/ecosystem/atlassian/jira/templates/3/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/3/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/templates/4/Dockerfile b/linux/ecosystem/atlassian/jira/templates/4/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/4/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/templates/4/Makefile b/linux/ecosystem/atlassian/jira/templates/4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/templates/4/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/4/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/4/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/templates/4/entrypoint.sh b/linux/ecosystem/atlassian/jira/templates/4/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/4/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/templates/5/Dockerfile b/linux/ecosystem/atlassian/jira/templates/5/Dockerfile new file mode 100644 index 000000000..4817a899d --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/5/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk6 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/templates/5/Makefile b/linux/ecosystem/atlassian/jira/templates/5/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/templates/5/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/5/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/5/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/templates/5/entrypoint.sh b/linux/ecosystem/atlassian/jira/templates/5/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/5/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/templates/6/Dockerfile b/linux/ecosystem/atlassian/jira/templates/6/Dockerfile new file mode 100644 index 000000000..2a1d2a7df --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/6/Dockerfile @@ -0,0 +1,48 @@ +FROM epicmorg/prod:jdk7 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/templates/6/Makefile b/linux/ecosystem/atlassian/jira/templates/6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/templates/6/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/6/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/6/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/templates/6/entrypoint.sh b/linux/ecosystem/atlassian/jira/templates/6/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/6/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/templates/7/Dockerfile b/linux/ecosystem/atlassian/jira/templates/7/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/7/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/templates/7/Makefile b/linux/ecosystem/atlassian/jira/templates/7/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/7/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/templates/7/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/7/docker-compose.yml new file mode 100644 index 000000000..61ae14071 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/7/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/templates/7/entrypoint.sh b/linux/ecosystem/atlassian/jira/templates/7/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/7/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/atlassian/jira/templates/8/Dockerfile b/linux/ecosystem/atlassian/jira/templates/8/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/8/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/templates/8/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/templates/8/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/8/Dockerfile.jdk11 @@ -0,0 +1,49 @@ +FROM epicmorg/prod:jdk11 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/linux/ecosystem/atlassian/jira/templates/8/Makefile b/linux/ecosystem/atlassian/jira/templates/8/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/atlassian/jira/templates/8/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/8/docker-compose.yml new file mode 100644 index 000000000..81592d775 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/8/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3.9' +services: + app: + image: "epicmorg/jira:${RELEASE}" + build: + context: . + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} + app-jdk11: + image: "epicmorg/jira:${RELEASE}-jdk11" + build: + context: . + dockerfile: Dockerfile.jdk11 + args: + RELEASE: ${RELEASE} + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/templates/8/entrypoint.sh b/linux/ecosystem/atlassian/jira/templates/8/entrypoint.sh new file mode 100755 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/templates/8/entrypoint.sh @@ -0,0 +1,89 @@ +#!/bin/bash +set -euo pipefail + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") +export JRE_HOME="$JAVA_HOME/jre" +export JAVA_BINARY="$JRE_HOME/bin/java" +export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}') + +# Setup Catalina Opts +: ${CATALINA_CONNECTOR_PROXYNAME:=} +: ${CATALINA_CONNECTOR_PROXYPORT:=} +: ${CATALINA_CONNECTOR_SCHEME:=http} +: ${CATALINA_CONNECTOR_SECURE:=false} + +: ${CATALINA_OPTS:=} + +: ${JAVA_OPTS:=} + +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}" +CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}" + +export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}" + +# Setup Data Center configuration +if [ ! -f "/etc/container_id" ]; then + uuidgen > /etc/container_id +fi +CONTAINER_ID=$(cat /etc/container_id) +CONTAINER_SHORT_ID=${CONTAINER_ID::8} + +: ${CLUSTERED:=false} +: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}} +: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared} +: ${EHCACHE_PEER_DISCOVERY:=} +: ${EHCACHE_LISTENER_HOSTNAME:=} +: ${EHCACHE_LISTENER_PORT:=} +: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=} +: ${EHCACHE_MULTICAST_ADDRESS:=} +: ${EHCACHE_MULTICAST_PORT:=} +: ${EHCACHE_MULTICAST_TIMETOLIVE:=} +: ${EHCACHE_MULTICAST_HOSTNAME:=} + +# Cleanly set/unset values in cluster.properties +function set_cluster_property { + if [ -z $2 ]; then + if [ -f "${JIRA_HOME}/cluster.properties" ]; then + sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties" + fi + return + fi + if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then + sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties" + else + echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties" + fi +} + +if [ "${CLUSTERED}" == "true" ]; then + set_cluster_property "jira.node.id" "${JIRA_NODE_ID}" + set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}" + set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}" + set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}" + set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}" + set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}" + set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}" + set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}" + set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}" +fi + + +# Start Jira as the correct user +if [ "${UID}" -eq 0 ]; then + echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}" + PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}") + EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700 + if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then + chmod -R 700 "${JIRA_HOME}" && + chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}" + fi + # Now drop privileges + exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@" +else + exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@" +fi diff --git a/linux/ecosystem/electron-release-server/Dockerfile b/linux/ecosystem/electron-release-server/Dockerfile new file mode 100644 index 000000000..ab0a477e7 --- /dev/null +++ b/linux/ecosystem/electron-release-server/Dockerfile @@ -0,0 +1,27 @@ +FROM epicmorg/edge as bootstrap +RUN cd /tmp && \ + git clone https://github.com/ArekSredzki/electron-release-server.git && \ + tree + +FROM node:10 +# Create app directory +RUN mkdir - p /usr/src/electron-release-server +WORKDIR /usr/src/electron-release-server + +# Install app dependencies +COPY --from=bootstrap /tmp/electron-release-server/package.json /usr/src/electron-release-server/ +COPY --from=bootstrap /tmp/electron-release-server/.bowerrc /usr/src/electron-release-server/ +COPY --from=bootstrap /tmp/electron-release-server/bower.json /usr/src/electron-release-server/ + +RUN npm install \ + && ./node_modules/.bin/bower install --allow-root \ + && npm cache clean --force \ + && npm prune --production + +# Bundle app source +COPY --from=bootstrap /tmp/electron-release-server/ /usr/src/electron-release-server +COPY --from=bootstrap /tmp/electron-release-server/config/docker.js /usr/src/electron-release-server/config/local.js + +EXPOSE 80 + +CMD [ "npm", "start" ] diff --git a/linux/ecosystem/electron-release-server/Makefile b/linux/ecosystem/electron-release-server/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/electron-release-server/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/electron-release-server/docker-compose.yml b/linux/ecosystem/electron-release-server/docker-compose.yml new file mode 100644 index 000000000..0dfcc01c2 --- /dev/null +++ b/linux/ecosystem/electron-release-server/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/electron-release-server:latest" + build: + context: . diff --git a/linux/ecosystem/electron-release-server/docker-compose.yml.example b/linux/ecosystem/electron-release-server/docker-compose.yml.example new file mode 100644 index 000000000..c28e81905 --- /dev/null +++ b/linux/ecosystem/electron-release-server/docker-compose.yml.example @@ -0,0 +1,29 @@ +version: '2' +services: + web: + build: . + environment: + APP_USERNAME: username + APP_PASSWORD: password + DB_HOST: db + DB_PORT: 5432 + DB_USERNAME: releaseserver + DB_NAME: releaseserver + DB_PASSWORD: secret + TOKEN_SECRET: change_me_in_production + APP_URL: 'localhost:5000' + ASSETS_PATH: '/usr/src/electron-release-server/releases' + depends_on: + - db + ports: + - '5000:80' + entrypoint: ./scripts/wait.sh db:5432 -- npm start + volumes: + - ./releases:/usr/src/electron-release-server/releases + db: + image: postgres:11 + environment: + POSTGRES_PASSWORD: secret + POSTGRES_USER: releaseserver + volumes: + - ./postgresql:/var/lib/postgresql/data diff --git a/linux/epicmorg/README.md b/linux/ecosystem/epicmorg/README.md similarity index 100% rename from linux/epicmorg/README.md rename to linux/ecosystem/epicmorg/README.md diff --git a/linux/epicmorg/devel/jdk11/Dockerfile b/linux/ecosystem/epicmorg/devel/jdk11/Dockerfile similarity index 100% rename from linux/epicmorg/devel/jdk11/Dockerfile rename to linux/ecosystem/epicmorg/devel/jdk11/Dockerfile diff --git a/linux/ecosystem/epicmorg/devel/jdk11/Makefile b/linux/ecosystem/epicmorg/devel/jdk11/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/devel/jdk11/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/devel/jdk11/docker-compose.yml b/linux/ecosystem/epicmorg/devel/jdk11/docker-compose.yml new file mode 100644 index 000000000..c18b88c24 --- /dev/null +++ b/linux/ecosystem/epicmorg/devel/jdk11/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/devel:jdk11" + build: + context: . diff --git a/linux/ecosystem/epicmorg/devel/jdk16/Dockerfile b/linux/ecosystem/epicmorg/devel/jdk16/Dockerfile new file mode 100644 index 000000000..18a382df5 --- /dev/null +++ b/linux/ecosystem/epicmorg/devel/jdk16/Dockerfile @@ -0,0 +1,24 @@ +FROM epicmorg/devel +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# installing java16 +################################################################## +RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ + echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \ + apt-get update && \ + apt-get autoremove -y && \ + apt-get install -y --allow-unauthenticated adoptopenjdk-16-hotspot && \ + mkdir /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/jre && \ + ln -s /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/jre/bin && \ + ln -s /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/jre/lib + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb diff --git a/linux/ecosystem/epicmorg/devel/jdk16/Makefile b/linux/ecosystem/epicmorg/devel/jdk16/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/devel/jdk16/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/devel/jdk16/docker-compose.yml b/linux/ecosystem/epicmorg/devel/jdk16/docker-compose.yml new file mode 100644 index 000000000..d72619833 --- /dev/null +++ b/linux/ecosystem/epicmorg/devel/jdk16/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/devel:jdk16" + build: + context: . diff --git a/linux/epicmorg/devel/jdk6/Dockerfile b/linux/ecosystem/epicmorg/devel/jdk6/Dockerfile similarity index 100% rename from linux/epicmorg/devel/jdk6/Dockerfile rename to linux/ecosystem/epicmorg/devel/jdk6/Dockerfile diff --git a/linux/ecosystem/epicmorg/devel/jdk6/Makefile b/linux/ecosystem/epicmorg/devel/jdk6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/devel/jdk6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/devel/jdk6/docker-compose.yml b/linux/ecosystem/epicmorg/devel/jdk6/docker-compose.yml new file mode 100644 index 000000000..fc8255dba --- /dev/null +++ b/linux/ecosystem/epicmorg/devel/jdk6/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/devel:jdk6" + build: + context: . diff --git a/linux/epicmorg/devel/jdk7/Dockerfile b/linux/ecosystem/epicmorg/devel/jdk7/Dockerfile similarity index 100% rename from linux/epicmorg/devel/jdk7/Dockerfile rename to linux/ecosystem/epicmorg/devel/jdk7/Dockerfile diff --git a/linux/ecosystem/epicmorg/devel/jdk7/Makefile b/linux/ecosystem/epicmorg/devel/jdk7/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/devel/jdk7/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/devel/jdk7/docker-compose.yml b/linux/ecosystem/epicmorg/devel/jdk7/docker-compose.yml new file mode 100644 index 000000000..05c7ad05f --- /dev/null +++ b/linux/ecosystem/epicmorg/devel/jdk7/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/devel:jdk7" + build: + context: . diff --git a/linux/epicmorg/devel/jdk8/Dockerfile b/linux/ecosystem/epicmorg/devel/jdk8/Dockerfile similarity index 100% rename from linux/epicmorg/devel/jdk8/Dockerfile rename to linux/ecosystem/epicmorg/devel/jdk8/Dockerfile diff --git a/linux/ecosystem/epicmorg/devel/jdk8/Makefile b/linux/ecosystem/epicmorg/devel/jdk8/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/devel/jdk8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/devel/jdk8/docker-compose.yml b/linux/ecosystem/epicmorg/devel/jdk8/docker-compose.yml new file mode 100644 index 000000000..82658b37b --- /dev/null +++ b/linux/ecosystem/epicmorg/devel/jdk8/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/devel:jdk8" + build: + context: . diff --git a/linux/ecosystem/epicmorg/devel/main/Dockerfile b/linux/ecosystem/epicmorg/devel/main/Dockerfile new file mode 100644 index 000000000..fb32d5a14 --- /dev/null +++ b/linux/ecosystem/epicmorg/devel/main/Dockerfile @@ -0,0 +1,116 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG NINJA_ARCH=linux +ARG NINJA_VERSION=latest +ARG NINJA_RELEASE_URL=https://api.github.com/repos/ninja-build/ninja/releases/${NINJA_VERSION} + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${SRC_DIR} ${EXPORT_DIR} ${PRE_DIR} + +################################################################## +# sid sources list +################################################################## +RUN apt update && \ + apt-get autoremove -y && \ + apt dist-upgrade -y + +################################################################## +# deps +################################################################## +RUN apt-get update && \ + apt install -y --allow-unauthenticated --allow-downgrades \ + build-essential \ + autoconf-archive \ + gnu-standards \ + cmake \ + libunwind-dev \ + golang \ + at \ + autopkgtest \ + gcc-multilib \ + g++-multilib \ + libxkbcommon-dev \ + zlib1g-dev \ + libfreetype6-dev \ + libegl1-mesa-dev \ + libgles2-mesa-dev \ + libgbm-dev \ + uuid-dev \ + nvidia-cg-toolkit \ + nvidia-cg-dev \ + libavcodec-dev \ + libsdl2-dev \ + libsdl-image1.2-dev \ + libxml2-dev \ + yasm \ + devscripts \ + automake \ + libtool \ + autotools-dev \ + dpkg-dev \ + fakeroot \ + checkinstall \ + dh-make \ + zlib1g \ + zlib1g-dev \ + libssl-dev \ + libxslt-dev \ + libgd-dev \ + libpcre3-dev \ + libgeoip-dev \ + libkrb5-dev \ + libperl-dev \ + krb5-user \ + luajit \ + liblua5.1-0-dev \ + libmaxminddb-dev \ + libpam0g-dev \ + libldap2-dev \ + libavformat-dev \ + libavfilter-dev \ + libswscale-dev \ + libavcodec-dev \ + libz-dev \ + libhiredis-dev \ + libzip-dev \ + libcrypto++-dev \ + libbz2-dev \ + libvpx-dev \ + libvpx6 \ + tcl + +################################################################## +# Get NINJA binary +################################################################## +RUN curl -s ${NINJA_RELEASE_URL} | jq -r ".assets[] | select(.name | test(\"${NINJA_ARCH}\")) | .browser_download_url" > /tmp/ninja-url.txt && \ + cat /tmp/ninja-url.txt && \ + cd /tmp && \ + wget -q -c --input-file=/tmp/ninja-url.txt && \ + unzip -o /tmp/ninja-linux.zip -d /bin && \ + printf "\n--------------------------------\nninja version: $(ninja --version)\n--------------------------------\n\n" + +################################################################## +# other customisations +################################################################## + + +################################################################## +# cleaninig up +################################################################## +RUN apt purge policykit-1 -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/epicmorg/devel/main/Makefile b/linux/ecosystem/epicmorg/devel/main/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/devel/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/devel/main/docker-compose.yml b/linux/ecosystem/epicmorg/devel/main/docker-compose.yml new file mode 100644 index 000000000..d580e7a5d --- /dev/null +++ b/linux/ecosystem/epicmorg/devel/main/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/devel:latest" + build: + context: . diff --git a/linux/epicmorg/edge/jdk11/Dockerfile b/linux/ecosystem/epicmorg/edge/jdk11/Dockerfile similarity index 100% rename from linux/epicmorg/edge/jdk11/Dockerfile rename to linux/ecosystem/epicmorg/edge/jdk11/Dockerfile diff --git a/linux/ecosystem/epicmorg/edge/jdk11/Makefile b/linux/ecosystem/epicmorg/edge/jdk11/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/jdk11/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/edge/jdk11/docker-compose.yml b/linux/ecosystem/epicmorg/edge/jdk11/docker-compose.yml new file mode 100644 index 000000000..8e3c49f5c --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/jdk11/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/edge:jdk11" + build: + context: . diff --git a/linux/ecosystem/epicmorg/edge/jdk16/Dockerfile b/linux/ecosystem/epicmorg/edge/jdk16/Dockerfile new file mode 100644 index 000000000..9b8a6ec8b --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/jdk16/Dockerfile @@ -0,0 +1,24 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# installing java16 +################################################################## +RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ + echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \ + apt-get update && \ + apt-get autoremove -y && \ + apt-get install -y --allow-unauthenticated adoptopenjdk-16-hotspot && \ + mkdir /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/jre && \ + ln -s /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/jre/bin && \ + ln -s /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/jre/lib + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb diff --git a/linux/ecosystem/epicmorg/edge/jdk16/Makefile b/linux/ecosystem/epicmorg/edge/jdk16/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/jdk16/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/edge/jdk16/docker-compose.yml b/linux/ecosystem/epicmorg/edge/jdk16/docker-compose.yml new file mode 100644 index 000000000..7945ea454 --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/jdk16/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/edge:jdk16" + build: + context: . diff --git a/linux/epicmorg/edge/jdk6/Dockerfile b/linux/ecosystem/epicmorg/edge/jdk6/Dockerfile similarity index 100% rename from linux/epicmorg/edge/jdk6/Dockerfile rename to linux/ecosystem/epicmorg/edge/jdk6/Dockerfile diff --git a/linux/ecosystem/epicmorg/edge/jdk6/Makefile b/linux/ecosystem/epicmorg/edge/jdk6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/jdk6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/edge/jdk6/docker-compose.yml b/linux/ecosystem/epicmorg/edge/jdk6/docker-compose.yml new file mode 100644 index 000000000..be02b2e6c --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/jdk6/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/edge:jdk6" + build: + context: . diff --git a/linux/epicmorg/edge/jdk7/Dockerfile b/linux/ecosystem/epicmorg/edge/jdk7/Dockerfile similarity index 100% rename from linux/epicmorg/edge/jdk7/Dockerfile rename to linux/ecosystem/epicmorg/edge/jdk7/Dockerfile diff --git a/linux/ecosystem/epicmorg/edge/jdk7/Makefile b/linux/ecosystem/epicmorg/edge/jdk7/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/jdk7/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/edge/jdk7/docker-compose.yml b/linux/ecosystem/epicmorg/edge/jdk7/docker-compose.yml new file mode 100644 index 000000000..f28c0e686 --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/jdk7/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/edge:jdk7" + build: + context: . diff --git a/linux/epicmorg/edge/jdk8/Dockerfile b/linux/ecosystem/epicmorg/edge/jdk8/Dockerfile similarity index 100% rename from linux/epicmorg/edge/jdk8/Dockerfile rename to linux/ecosystem/epicmorg/edge/jdk8/Dockerfile diff --git a/linux/ecosystem/epicmorg/edge/jdk8/Makefile b/linux/ecosystem/epicmorg/edge/jdk8/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/jdk8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/edge/jdk8/docker-compose.yml b/linux/ecosystem/epicmorg/edge/jdk8/docker-compose.yml new file mode 100644 index 000000000..62509c1d6 --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/jdk8/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/edge:jdk8" + build: + context: . diff --git a/linux/ecosystem/epicmorg/edge/main/Dockerfile b/linux/ecosystem/epicmorg/edge/main/Dockerfile new file mode 100644 index 000000000..6c340284e --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/main/Dockerfile @@ -0,0 +1,24 @@ +FROM epicmorg/prod +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# bullseye sources list +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list /etc/apt/sources.list +RUN apt update && \ + apt autoremove -y && \ + apt-get install -y libc6 libxml2-utils && \ + apt upgrade -y && \ + apt dist-upgrade -y && \ + apt autoremove -y + +################################################################## +# cleaninig up +################################################################## +RUN apt purge policykit-1 -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb diff --git a/linux/ecosystem/epicmorg/edge/main/Makefile b/linux/ecosystem/epicmorg/edge/main/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/edge/main/docker-compose.yml b/linux/ecosystem/epicmorg/edge/main/docker-compose.yml new file mode 100644 index 000000000..68eb65396 --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/main/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/edge:latest" + build: + context: . diff --git a/linux/ecosystem/epicmorg/edge/main/sources.list b/linux/ecosystem/epicmorg/edge/main/sources.list new file mode 100644 index 000000000..5a8c0081a --- /dev/null +++ b/linux/ecosystem/epicmorg/edge/main/sources.list @@ -0,0 +1,21 @@ +#main +deb http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-updates main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-backports main contrib non-free +deb http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ bullseye-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security main contrib non-free +deb http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ bullseye-security/updates main contrib non-free + +##multimedia +# deb http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye main non-free +# deb http://httpredir.debian.org/debian-multimedia/ bullseye-backports main +# deb-src http://httpredir.debian.org/debian-multimedia/ bullseye-backports main diff --git a/linux/epicmorg/prod/jdk11/Dockerfile b/linux/ecosystem/epicmorg/prod/jdk11/Dockerfile similarity index 100% rename from linux/epicmorg/prod/jdk11/Dockerfile rename to linux/ecosystem/epicmorg/prod/jdk11/Dockerfile diff --git a/linux/ecosystem/epicmorg/prod/jdk11/Makefile b/linux/ecosystem/epicmorg/prod/jdk11/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/jdk11/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/prod/jdk11/docker-compose.yml b/linux/ecosystem/epicmorg/prod/jdk11/docker-compose.yml new file mode 100644 index 000000000..f2f42c39a --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/jdk11/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/prod:jdk11" + build: + context: . diff --git a/linux/ecosystem/epicmorg/prod/jdk16/Dockerfile b/linux/ecosystem/epicmorg/prod/jdk16/Dockerfile new file mode 100644 index 000000000..dbe7f1aaa --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/jdk16/Dockerfile @@ -0,0 +1,23 @@ +FROM epicmorg/prod +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# installing java16 +################################################################## +RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ + echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \ + apt-get update && \ + apt-get autoremove -y && \ + apt-get install -y --allow-unauthenticated adoptopenjdk-16-hotspot && \ + mkdir /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/jre && \ + ln -s /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/jre/bin && \ + ln -s /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-16-hotspot-amd64/jre/lib + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb diff --git a/linux/ecosystem/epicmorg/prod/jdk16/Makefile b/linux/ecosystem/epicmorg/prod/jdk16/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/jdk16/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/prod/jdk16/docker-compose.yml b/linux/ecosystem/epicmorg/prod/jdk16/docker-compose.yml new file mode 100644 index 000000000..4d284744c --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/jdk16/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/prod:jdk16" + build: + context: . diff --git a/linux/epicmorg/prod/jdk6/Dockerfile b/linux/ecosystem/epicmorg/prod/jdk6/Dockerfile similarity index 100% rename from linux/epicmorg/prod/jdk6/Dockerfile rename to linux/ecosystem/epicmorg/prod/jdk6/Dockerfile diff --git a/linux/ecosystem/epicmorg/prod/jdk6/Makefile b/linux/ecosystem/epicmorg/prod/jdk6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/jdk6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/prod/jdk6/docker-compose.yml b/linux/ecosystem/epicmorg/prod/jdk6/docker-compose.yml new file mode 100644 index 000000000..d3b32eefa --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/jdk6/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/prod:jdk6" + build: + context: . diff --git a/linux/epicmorg/prod/jdk7/Dockerfile b/linux/ecosystem/epicmorg/prod/jdk7/Dockerfile similarity index 100% rename from linux/epicmorg/prod/jdk7/Dockerfile rename to linux/ecosystem/epicmorg/prod/jdk7/Dockerfile diff --git a/linux/ecosystem/epicmorg/prod/jdk7/Makefile b/linux/ecosystem/epicmorg/prod/jdk7/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/jdk7/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/prod/jdk7/docker-compose.yml b/linux/ecosystem/epicmorg/prod/jdk7/docker-compose.yml new file mode 100644 index 000000000..552f80bde --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/jdk7/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/prod:jdk7" + build: + context: . diff --git a/linux/epicmorg/prod/jdk8/Dockerfile b/linux/ecosystem/epicmorg/prod/jdk8/Dockerfile similarity index 100% rename from linux/epicmorg/prod/jdk8/Dockerfile rename to linux/ecosystem/epicmorg/prod/jdk8/Dockerfile diff --git a/linux/ecosystem/epicmorg/prod/jdk8/Makefile b/linux/ecosystem/epicmorg/prod/jdk8/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/jdk8/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/epicmorg/prod/jdk8/docker-compose.yml b/linux/ecosystem/epicmorg/prod/jdk8/docker-compose.yml new file mode 100644 index 000000000..e1a271d98 --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/jdk8/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/prod:jdk8" + build: + context: . diff --git a/linux/ecosystem/epicmorg/prod/main/Dockerfile b/linux/ecosystem/epicmorg/prod/main/Dockerfile new file mode 100644 index 000000000..e849863c1 --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/main/Dockerfile @@ -0,0 +1,132 @@ +FROM debian:buster-slim +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# buster sources list +################################################################## +COPY deb-multimedia-keyring.gpg /etc/apt/trusted.gpg.d/deb-multimedia-keyring.gpg +RUN rm /etc/apt/sources.list +COPY sources.list /etc/apt/sources.list +RUN apt update && apt dist-upgrade -y +COPY locale.gen /etc/locale.gen +RUN for i in $(seq 1 8); do mkdir -p "/usr/share/man/man${i}"; done + +################################################################## +# perforce client binary +################################################################## +ENV P4_VERSION=r21.1 +ENV P4_DOWNLOAD_URL=https://www.perforce.com/downloads/perforce/${P4_VERSION}/bin.linux26x86_64/p4 + +################################################################## +# 7z official binary +################################################################## +ENV SZ_VERSION=7z2103 +ENV SZ_DOWNLOAD_URL=https://www.7-zip.org/a/${SZ_VERSION}-linux-x64.tar.xz + +################################################################## +# installing utils +################################################################## +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + apt-transport-https \ + apt-utils \ + aptitude \ + bash \ + binutils \ + bzip2 \ + ca-certificates \ + cmatrix \ + cmatrix-xfont \ + console-cyrillic \ + cron \ + curl \ + clzip \ + dos2unix \ + ffmpeg \ + fontconfig \ + git \ + gnupg \ + gnupg2 \ + graphicsmagick \ + gzip \ + htop \ + iftop \ + iputils-ping \ + jq \ + kmod \ + libxml2-dev \ + libxml2-utils \ + lbzip2 \ + libsvn-java \ + locales \ + lsb-release \ + lsof \ + lynx \ + lzma \ + libzip4 \ + lzip \ + lzop \ + mc \ + mercurial \ + nano \ + nload \ + nmap \ + openssl \ + perl \ + procps \ + pbzip2 \ + plzip \ + p7zip-full \ + p7zip-rar \ + rsync \ + rar \ + screenfetch \ + smbclient \ + software-properties-common \ + subversion \ + sudo \ + telnet \ + tini \ + tmux \ + tree \ + util-linux \ + uuid-runtime \ + unrar \ + xz-utils \ + wget \ + zip + +################################################################## +# Install p4client +################################################################## +RUN wget -nv --random-wait -c -P /usr/bin ${P4_DOWNLOAD_URL} && \ + chmod +x /usr/bin/p4 + +################################################################## +# Install 7z official binary +################################################################## +RUN wget -nv --random-wait -c -O /tmp/7z.tar.xz ${SZ_DOWNLOAD_URL} && \ + mkdir -p /tmp/7z && \ + tar -xf /tmp/7z.tar.xz -C /tmp/7z && \ + chmod +x /tmp/7z/7zz && \ + mv -fv /tmp/7z/7zz /usr/bin/ && \ + 7zz | head -4 && \ + 7z | head -4 + +################################################################## +# Generate ssl key +################################################################## +RUN openssl dhparam -out /etc/ssl/dhparam.pem 4096 + +################################################################## +# cleaninig up +################################################################## +RUN apt purge policykit-1 -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /tmp/mc.patch && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/7z diff --git a/linux/ecosystem/epicmorg/prod/main/Makefile b/linux/ecosystem/epicmorg/prod/main/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/epicmorg/prod/main/deb-multimedia-keyring.gpg b/linux/ecosystem/epicmorg/prod/main/deb-multimedia-keyring.gpg similarity index 100% rename from linux/epicmorg/prod/main/deb-multimedia-keyring.gpg rename to linux/ecosystem/epicmorg/prod/main/deb-multimedia-keyring.gpg diff --git a/linux/ecosystem/epicmorg/prod/main/docker-compose.yml b/linux/ecosystem/epicmorg/prod/main/docker-compose.yml new file mode 100644 index 000000000..0eb49ecd4 --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/main/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/prod:latest" + build: + context: . diff --git a/linux/zabbix/web/locale.gen b/linux/ecosystem/epicmorg/prod/main/locale.gen similarity index 100% rename from linux/zabbix/web/locale.gen rename to linux/ecosystem/epicmorg/prod/main/locale.gen diff --git a/linux/zabbix/web/locale.gen.full b/linux/ecosystem/epicmorg/prod/main/locale.gen.full similarity index 100% rename from linux/zabbix/web/locale.gen.full rename to linux/ecosystem/epicmorg/prod/main/locale.gen.full diff --git a/linux/ecosystem/epicmorg/prod/main/sources.list b/linux/ecosystem/epicmorg/prod/main/sources.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/ecosystem/epicmorg/prod/main/sources.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ buster main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster main contrib non-free +deb http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb http://httpredir.debian.org/debian-multimedia/ buster-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/ecosystem/nginx/1.14.2/main/.env b/linux/ecosystem/nginx/1.14.2/main/.env new file mode 100644 index 000000000..2885ba745 --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.14.2 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.14.2.tar.gz diff --git a/linux/ecosystem/nginx/1.14.2/main/Dockerfile b/linux/ecosystem/nginx/1.14.2/main/Dockerfile new file mode 100644 index 000000000..907a090fe --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/main/Dockerfile @@ -0,0 +1,245 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG PRE_DIR=${BUILDS_DIR}/pre +ARG NGINX_SRC_DIR=${SRC_DIR}/nginx +ARG NGINX_VERSION +ARG NGINX_DOWNLOAD_URL +ARG LUAJIT_INC=/usr/local/include/luajit-2.1 +ARG LUAJIT_LIB=/usr/local/lib + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${PRE_DIR} ${NGINX_SRC_DIR} /usr/lib/nginx +ADD pre/luajit2-description-pak ${PRE_DIR} +ADD pre/nginx-description-pak ${PRE_DIR} +ADD pre/ip2location-description-pak ${PRE_DIR} + +################################################################## +# IP2Location support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2 && \ + cp -fv ${PRE_DIR}/ip2location-description-pak ${SRC_DIR}/ip2/description-pak && \ + cd ${SRC_DIR}/ip2 && \ + ls -las && \ + autoreconf -i -v --force && \ + aclocal && \ + automake --gnu --add-missing && \ + autoconf && \ + autoreconf -i -v --force && \ + ./configure && \ + ls -las && \ + make clean && \ + make && \ + make -C data convert && \ + make check && \ + ls -las && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=ip2-custom --conflicts=ip2 --install=yes -y && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + dpkg --force-all -i ${EXPORT_DIR}/*.deb + +################################################################## +# luaJIT 2 support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/openresty/luajit2.git luajit2 && \ + cp -fv ${PRE_DIR}/luajit2-description-pak ${SRC_DIR}/luajit2/description-pak && \ + cd ${SRC_DIR}/luajit2 && \ + make && \ + make install && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=luajit2-custom --conflicts=luajit2 --install=no -y + +################################################################## +# nginx preparing +################################################################## +RUN wget -qO - ${NGINX_DOWNLOAD_URL} | tar -zxv --strip-components=1 -C ${NGINX_SRC_DIR} && \ + cd ${NGINX_SRC_DIR} && \ + git clone https://github.com/openresty/headers-more-nginx-module.git http-headers-more-filter && \ + git clone https://github.com/sto/ngx_http_auth_pam_module.git http-auth-pam && \ + git clone https://github.com/arut/nginx-dav-ext-module.git http-dav-ext && \ + git clone https://github.com/openresty/echo-nginx-module.git http-echo && \ + git clone https://github.com/aperezdc/ngx-fancyindex.git http-fancyindex && \ + git clone https://github.com/slact/nchan.git nchan && \ + git clone https://github.com/masterzen/nginx-upload-progress-module.git http-uploadprogress && \ + git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module http-subs-filter && \ + git clone https://github.com/grahamedgecombe/nginx-ct.git ssl-ct && \ + git clone https://github.com/stnoonan/spnego-http-auth-nginx-module.git spnego-http-auth-nginx-module && \ + git clone https://github.com/leev/ngx_http_geoip2_module http-geoip2 && \ + git clone https://github.com/flavioribeiro/nginx-audio-track-for-hls-module.git nginx-audio-track-for-hls-module && \ + git clone https://github.com/chrislim2888/ip2location-nginx.git ip2location-nginx && \ + git clone https://github.com/kaltura/nginx-vod-module.git nginx-vod-module && \ + git clone https://github.com/vozlt/nginx-module-vts.git nginx-module-vts && \ + git clone https://github.com/evanmiller/mod_zip.git mod-zip && \ + git clone https://github.com/alibaba/nginx-http-user-agent.git nginx-http-user-agent && \ + git clone https://github.com/youzee/nginx-unzip-module.git nginx-unzip-module && \ + git clone https://github.com/vladbondarenko/ngx_webp.git ngx-webp && \ + git clone https://github.com/openresty/xss-nginx-module.git xss-nginx-module && \ + git clone https://github.com/openresty/set-misc-nginx-module.git set-misc-nginx-module && \ + git clone https://github.com/arut/nginx-rtmp-module.git rtmp && \ + git clone https://github.com/kvspb/nginx-auth-ldap.git http-auth-ldap && \ + git clone https://github.com/simplresty/ngx_devel_kit.git http-ndk && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2location-c-7.0.0 && \ + git clone https://github.com/itoffshore/nginx-upstream-fair.git http-upstream-fair && \ + git clone https://github.com/yaoweibin/nginx_upstream_check_module.git nginx-upstream-check-module && \ + git clone https://github.com/openresty/lua-nginx-module http-lua + +################################################################## +# nginx compilling +################################################################## +RUN cd ${NGINX_SRC_DIR} && \ + ./configure \ + --sbin-path=/usr/sbin/nginx \ + --prefix=/usr/share/nginx \ + --conf-path=/etc/nginx/nginx.conf \ + --http-log-path=/var/log/nginx/access.log \ + --error-log-path=/var/log/nginx/error.log \ + --lock-path=/var/lock/nginx.lock \ + --pid-path=/run/nginx.pid \ + --modules-path=/usr/lib/nginx/modules \ + --http-client-body-temp-path=/var/lib/nginx/body \ + --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ + --http-proxy-temp-path=/var/lib/nginx/proxy \ + --http-scgi-temp-path=/var/lib/nginx/scgi \ + --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ + --with-cc-opt='-I/usr/local/include/luajit-2.1 -g -O2 -lz -fstack-protector-strong -Wformat -Wno-error=date-time -Wno-error=implicit-fallthrough= -Wno-error=cast-function-type -Wno-error=format-security -Wno-error=implicit-function-declaration -Wno-error=deprecated-declarations -Wno-error=unused-result -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' \ + --with-ld-opt='-Wl,-z,relro -Wl,-z,now -lz -fPIC -L/usr/local/lib' \ + --with-file-aio \ + --with-compat \ + --with-debug \ + --with-threads \ + --with-pcre-jit \ + --with-http_ssl_module \ + --with-http_stub_status_module \ + --with-http_realip_module \ + --with-http_auth_request_module \ + --with-http_v2_module \ + --with-http_dav_module \ + --with-http_slice_module \ + --with-http_addition_module \ + --with-http_flv_module \ + --with-http_geoip_module=dynamic \ + --with-http_gunzip_module \ + --with-http_gzip_static_module \ + --with-http_image_filter_module=dynamic \ + --with-http_mp4_module \ + --with-http_perl_module=dynamic \ + --with-http_random_index_module \ + --with-http_secure_link_module \ + --with-http_sub_module \ + --with-http_xslt_module=dynamic \ + --with-mail=dynamic \ + --with-mail_ssl_module \ + --with-stream=dynamic \ + --with-stream_ssl_module \ + --with-stream_ssl_preread_module \ + --add-dynamic-module=http-headers-more-filter \ + --add-dynamic-module=http-auth-pam \ + --add-dynamic-module=http-dav-ext \ + --add-dynamic-module=http-ndk \ + --add-dynamic-module=http-echo \ + --add-dynamic-module=http-fancyindex \ + --add-dynamic-module=nchan \ + --add-dynamic-module=http-uploadprogress \ + --add-dynamic-module=http-subs-filter \ + --add-dynamic-module=ssl-ct \ + --add-dynamic-module=http-geoip2 \ + --add-dynamic-module=spnego-http-auth-nginx-module \ + --add-dynamic-module=http-auth-ldap \ +# --add-dynamic-module=nginx-audio-track-for-hls-module \ + --add-dynamic-module=ip2location-nginx \ + --add-dynamic-module=nginx-vod-module \ +# --add-dynamic-module=nginx-module-vts \ + --add-dynamic-module=mod-zip \ + --add-dynamic-module=nginx-http-user-agent \ + --add-dynamic-module=nginx-unzip-module \ + --add-dynamic-module=ngx-webp \ + --add-dynamic-module=set-misc-nginx-module \ + --add-dynamic-module=rtmp \ + --add-dynamic-module=http-upstream-fair \ + --add-dynamic-module=nginx-upstream-check-module \ + --add-dynamic-module=http-lua && \ + cp -fv ${PRE_DIR}/nginx-description-pak ${NGINX_SRC_DIR}/description-pak && \ + fakeroot checkinstall -D --pakdir=/builds/export --maintainer="EpicMorg, developer@epicm.org" --pkgname=nginx-custom --install=no -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +################################################################## +# Installing nginx from deb +################################################################## +ADD pre/ngninx.pre.tar.gz / +COPY --from=builder /builds/export /tmp/deb +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + geoip-database \ + geoip-bin \ + libgeoip1 \ + libmaxminddb0 \ + libgd3 \ + libxslt1.1 && \ + dpkg --force-all -i /tmp/deb/*.deb && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /usr/lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /usr/lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /usr/lib/libIP2Location.so.5 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /lib/libIP2Location.so.5 && \ + ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log && \ + ln -sf /etc/ssl/dhparam.pem /etc/nginx/dhparam.pem && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /var/cache/apt/archives/*.deb && \ + rm -rf /tmp/deb/* && \ + rm -rf /builds/* && \ + rm -rf /valve/* + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.14.2/main/Makefile b/linux/ecosystem/nginx/1.14.2/main/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/nginx/latest/README.md b/linux/ecosystem/nginx/1.14.2/main/README.md similarity index 100% rename from linux/nginx/latest/README.md rename to linux/ecosystem/nginx/1.14.2/main/README.md diff --git a/linux/ecosystem/nginx/1.14.2/main/docker-compose.yml b/linux/ecosystem/nginx/1.14.2/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/nginx/latest/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.14.2/main/pre/ip2location-description-pak similarity index 100% rename from linux/nginx/latest/pre/ip2location-description-pak rename to linux/ecosystem/nginx/1.14.2/main/pre/ip2location-description-pak diff --git a/linux/nginx/latest/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.14.2/main/pre/luajit2-description-pak similarity index 100% rename from linux/nginx/latest/pre/luajit2-description-pak rename to linux/ecosystem/nginx/1.14.2/main/pre/luajit2-description-pak diff --git a/linux/nginx/latest/pre/nginx-description-pak b/linux/ecosystem/nginx/1.14.2/main/pre/nginx-description-pak similarity index 100% rename from linux/nginx/latest/pre/nginx-description-pak rename to linux/ecosystem/nginx/1.14.2/main/pre/nginx-description-pak diff --git a/linux/nginx/latest/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.14.2/main/pre/ngninx.pre.tar.gz similarity index 100% rename from linux/nginx/latest/pre/ngninx.pre.tar.gz rename to linux/ecosystem/nginx/1.14.2/main/pre/ngninx.pre.tar.gz diff --git a/linux/ecosystem/nginx/1.14.2/php/.env b/linux/ecosystem/nginx/1.14.2/php/.env new file mode 100644 index 000000000..2885ba745 --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/php/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.14.2 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.14.2.tar.gz diff --git a/linux/ecosystem/nginx/1.14.2/php/Dockerfile b/linux/ecosystem/nginx/1.14.2/php/Dockerfile new file mode 100644 index 000000000..3b2664f17 --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/php/Dockerfile @@ -0,0 +1,257 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 + +ARG P4API_VER=r20.1 +ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP7 +################################################################## +#installing php repo + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + smbclient libsmbclient libsmbclient-dev \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} + + +################################################################## +# compilling smbclient +################################################################## +RUN pecl install smbclient && \ + cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Installing php fpm for nginx from deb +################################################################## +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 +ARG PHP_VER=7.4 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini + +################################################################## +# Installing PHP7 +################################################################## +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi \ + php-pear \ + php7.4-gmp \ + php7.4-snmp \ + php7.4-ldap \ + php7.4-mail \ + php7.4-soap \ + php7.4-mysql \ + php7.4-memcached \ + php7.4-memcache \ + php7.4-igbinary \ + php7.4-interbase \ + php7.4-curl \ + php7.4-gd \ + php7.4-intl \ + php7.4-zip \ + php7.4-bcmath \ + php7.4-imap \ + php7.4-pspell \ + php7.4-sqlite3 \ + php7.4-tidy \ + php7.4-xmlrpc \ + php7.4-xml \ + php7.4-mbstring \ + php7.4-apcu \ + php7.4-common \ + php7.4-json \ + php7.4-readline \ + php7.4-enchant \ + php7.4-ssh2 \ + php7.4-oauth \ + php7.4-gmagick \ + php7.4-gnupg \ + php7.4-redis \ + smbclient libsmbclient \ +# php-smbclient \ + php7.4-yaml \ + php7.4-geoip \ + sendmail && \ + update-alternatives --set php /usr/bin/php7.4 && \ + phpenmod \ + snmp \ + gmp \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + gnupg \ + iconv \ + imap \ + json \ + mbstring \ + memcached \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} +RUN echo "extension=smbclient.so" > ${SMB_PHP_INI} && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ + php -m && \ + php -v + + + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.14.2/php/Makefile b/linux/ecosystem/nginx/1.14.2/php/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/php/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/nginx/php/README.md b/linux/ecosystem/nginx/1.14.2/php/README.md similarity index 100% rename from linux/nginx/php/README.md rename to linux/ecosystem/nginx/1.14.2/php/README.md diff --git a/linux/ecosystem/nginx/1.14.2/php/docker-compose.yml b/linux/ecosystem/nginx/1.14.2/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/php/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-php" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.14.2/rtmp-hls/.env b/linux/ecosystem/nginx/1.14.2/rtmp-hls/.env new file mode 100644 index 000000000..2885ba745 --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.14.2 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.14.2.tar.gz diff --git a/linux/ecosystem/nginx/1.14.2/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.14.2/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/rtmp-hls/Dockerfile @@ -0,0 +1,127 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG NGINX_RTMP_MODULE_VERSION=1.2.1 + +################################################################## +# Clear sources.list.d +################################################################## +RUN rm -rfv /etc/apt/sources.list.d/* + +################################################################## +# sid sources list +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN apt update + +################################################################## +# installing utils +################################################################## +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libpcre3-dev \ + librtmp1 \ + libtheora0 \ + libvorbis-dev \ + libmp3lame0 \ + libx264-dev \ + libx265-dev + + +################################################################## +# stretch sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.stretch.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx4 + + +################################################################## +# buster sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.buster.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx5 + + +################################################################## +# sid sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx6 + + +################################################################## +# installing deps for rtmp module +################################################################## +RUN mkdir -p /usr/share/nginx/html \ + /mnt/hls \ + /mnt/dash \ + /tmp/build && \ + chown -R www-data:www-data /mnt/hls && \ + chown -R www-data:www-data /mnt/dash && \ + chmod -R 755 /mnt/hls && \ + chmod -R 755 /mnt/dash && \ + cd /tmp/build && \ + wget https://github.com/arut/nginx-rtmp-module/archive/v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + tar -zxf v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + rm v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + cp /tmp/build/nginx-rtmp-module-${NGINX_RTMP_MODULE_VERSION}/stat.xsl /usr/share/nginx/html/stat.xsl && \ + rm -rf /tmp/build + + +################################################################## +# Forward logs to Docker +################################################################## +RUN ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log + + +################################################################## +# Copy nginx config file to container +################################################################## +RUN rm -rfv /etc/nginx/nginx.conf \ + /etc/nginx/sites-avalible/default +COPY conf/nginx.conf /etc/nginx/nginx.conf + + +################################################################## +# Copy html players to container +################################################################## +COPY players /usr/share/nginx/html/players + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + + +EXPOSE 1935 +EXPOSE 8080 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.14.2/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.14.2/rtmp-hls/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/rtmp-hls/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/nginx/rtmp-hls/README.md b/linux/ecosystem/nginx/1.14.2/rtmp-hls/README.md similarity index 100% rename from linux/nginx/rtmp-hls/README.md rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/README.md diff --git a/linux/nginx/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.14.2/rtmp-hls/conf/nginx.conf similarity index 100% rename from linux/nginx/rtmp-hls/conf/nginx.conf rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/conf/nginx.conf diff --git a/linux/nginx/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/ecosystem/nginx/1.14.2/rtmp-hls/conf/nginx_no-ffmpeg.conf similarity index 100% rename from linux/nginx/rtmp-hls/conf/nginx_no-ffmpeg.conf rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/conf/nginx_no-ffmpeg.conf diff --git a/linux/nginx/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/ecosystem/nginx/1.14.2/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf similarity index 100% rename from linux/nginx/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf diff --git a/linux/ecosystem/nginx/1.14.2/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.14.2/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/rtmp-hls/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-rtmp-hls" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/nginx/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.14.2/rtmp-hls/players/dash.html similarity index 100% rename from linux/nginx/rtmp-hls/players/dash.html rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/players/dash.html diff --git a/linux/nginx/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.14.2/rtmp-hls/players/hls.html similarity index 100% rename from linux/nginx/rtmp-hls/players/hls.html rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/players/hls.html diff --git a/linux/nginx/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.14.2/rtmp-hls/players/hls_hlsjs.html similarity index 100% rename from linux/nginx/rtmp-hls/players/hls_hlsjs.html rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/players/hls_hlsjs.html diff --git a/linux/nginx/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.14.2/rtmp-hls/players/rtmp.html similarity index 100% rename from linux/nginx/rtmp-hls/players/rtmp.html rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/players/rtmp.html diff --git a/linux/nginx/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.14.2/rtmp-hls/players/rtmp_hls.html similarity index 100% rename from linux/nginx/rtmp-hls/players/rtmp_hls.html rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/players/rtmp_hls.html diff --git a/linux/ecosystem/nginx/1.14.2/rtmp-hls/sources.list.d/sources.buster.list b/linux/ecosystem/nginx/1.14.2/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ buster main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster main contrib non-free +deb http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb http://httpredir.debian.org/debian-multimedia/ buster-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/ecosystem/nginx/1.14.2/rtmp-hls/sources.list.d/sources.sid.list b/linux/ecosystem/nginx/1.14.2/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..465c737af --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ sid main contrib non-free +deb-src http://httpredir.debian.org/debian/ sid main contrib non-free +deb http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free + +#backports +#deb http://httpredir.debian.org/debian/ testing-backports main contrib non-free +#deb-src http://httpredir.debian.org/debian/ testing-backports main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ testing-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ testing-security main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ sid main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/nginx/1.14.2/rtmp-hls/sources.list.d/sources.stretch.list b/linux/ecosystem/nginx/1.14.2/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..617bf9bb6 --- /dev/null +++ b/linux/ecosystem/nginx/1.14.2/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ stretch main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb http://httpredir.debian.org/debian-multimedia/ stretch-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch-backports main diff --git a/linux/ecosystem/nginx/1.15.12/main/.env b/linux/ecosystem/nginx/1.15.12/main/.env new file mode 100644 index 000000000..ba910de48 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.15.12 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.15.12.tar.gz diff --git a/linux/ecosystem/nginx/1.15.12/main/Dockerfile b/linux/ecosystem/nginx/1.15.12/main/Dockerfile new file mode 100644 index 000000000..907a090fe --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/main/Dockerfile @@ -0,0 +1,245 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG PRE_DIR=${BUILDS_DIR}/pre +ARG NGINX_SRC_DIR=${SRC_DIR}/nginx +ARG NGINX_VERSION +ARG NGINX_DOWNLOAD_URL +ARG LUAJIT_INC=/usr/local/include/luajit-2.1 +ARG LUAJIT_LIB=/usr/local/lib + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${PRE_DIR} ${NGINX_SRC_DIR} /usr/lib/nginx +ADD pre/luajit2-description-pak ${PRE_DIR} +ADD pre/nginx-description-pak ${PRE_DIR} +ADD pre/ip2location-description-pak ${PRE_DIR} + +################################################################## +# IP2Location support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2 && \ + cp -fv ${PRE_DIR}/ip2location-description-pak ${SRC_DIR}/ip2/description-pak && \ + cd ${SRC_DIR}/ip2 && \ + ls -las && \ + autoreconf -i -v --force && \ + aclocal && \ + automake --gnu --add-missing && \ + autoconf && \ + autoreconf -i -v --force && \ + ./configure && \ + ls -las && \ + make clean && \ + make && \ + make -C data convert && \ + make check && \ + ls -las && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=ip2-custom --conflicts=ip2 --install=yes -y && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + dpkg --force-all -i ${EXPORT_DIR}/*.deb + +################################################################## +# luaJIT 2 support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/openresty/luajit2.git luajit2 && \ + cp -fv ${PRE_DIR}/luajit2-description-pak ${SRC_DIR}/luajit2/description-pak && \ + cd ${SRC_DIR}/luajit2 && \ + make && \ + make install && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=luajit2-custom --conflicts=luajit2 --install=no -y + +################################################################## +# nginx preparing +################################################################## +RUN wget -qO - ${NGINX_DOWNLOAD_URL} | tar -zxv --strip-components=1 -C ${NGINX_SRC_DIR} && \ + cd ${NGINX_SRC_DIR} && \ + git clone https://github.com/openresty/headers-more-nginx-module.git http-headers-more-filter && \ + git clone https://github.com/sto/ngx_http_auth_pam_module.git http-auth-pam && \ + git clone https://github.com/arut/nginx-dav-ext-module.git http-dav-ext && \ + git clone https://github.com/openresty/echo-nginx-module.git http-echo && \ + git clone https://github.com/aperezdc/ngx-fancyindex.git http-fancyindex && \ + git clone https://github.com/slact/nchan.git nchan && \ + git clone https://github.com/masterzen/nginx-upload-progress-module.git http-uploadprogress && \ + git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module http-subs-filter && \ + git clone https://github.com/grahamedgecombe/nginx-ct.git ssl-ct && \ + git clone https://github.com/stnoonan/spnego-http-auth-nginx-module.git spnego-http-auth-nginx-module && \ + git clone https://github.com/leev/ngx_http_geoip2_module http-geoip2 && \ + git clone https://github.com/flavioribeiro/nginx-audio-track-for-hls-module.git nginx-audio-track-for-hls-module && \ + git clone https://github.com/chrislim2888/ip2location-nginx.git ip2location-nginx && \ + git clone https://github.com/kaltura/nginx-vod-module.git nginx-vod-module && \ + git clone https://github.com/vozlt/nginx-module-vts.git nginx-module-vts && \ + git clone https://github.com/evanmiller/mod_zip.git mod-zip && \ + git clone https://github.com/alibaba/nginx-http-user-agent.git nginx-http-user-agent && \ + git clone https://github.com/youzee/nginx-unzip-module.git nginx-unzip-module && \ + git clone https://github.com/vladbondarenko/ngx_webp.git ngx-webp && \ + git clone https://github.com/openresty/xss-nginx-module.git xss-nginx-module && \ + git clone https://github.com/openresty/set-misc-nginx-module.git set-misc-nginx-module && \ + git clone https://github.com/arut/nginx-rtmp-module.git rtmp && \ + git clone https://github.com/kvspb/nginx-auth-ldap.git http-auth-ldap && \ + git clone https://github.com/simplresty/ngx_devel_kit.git http-ndk && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2location-c-7.0.0 && \ + git clone https://github.com/itoffshore/nginx-upstream-fair.git http-upstream-fair && \ + git clone https://github.com/yaoweibin/nginx_upstream_check_module.git nginx-upstream-check-module && \ + git clone https://github.com/openresty/lua-nginx-module http-lua + +################################################################## +# nginx compilling +################################################################## +RUN cd ${NGINX_SRC_DIR} && \ + ./configure \ + --sbin-path=/usr/sbin/nginx \ + --prefix=/usr/share/nginx \ + --conf-path=/etc/nginx/nginx.conf \ + --http-log-path=/var/log/nginx/access.log \ + --error-log-path=/var/log/nginx/error.log \ + --lock-path=/var/lock/nginx.lock \ + --pid-path=/run/nginx.pid \ + --modules-path=/usr/lib/nginx/modules \ + --http-client-body-temp-path=/var/lib/nginx/body \ + --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ + --http-proxy-temp-path=/var/lib/nginx/proxy \ + --http-scgi-temp-path=/var/lib/nginx/scgi \ + --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ + --with-cc-opt='-I/usr/local/include/luajit-2.1 -g -O2 -lz -fstack-protector-strong -Wformat -Wno-error=date-time -Wno-error=implicit-fallthrough= -Wno-error=cast-function-type -Wno-error=format-security -Wno-error=implicit-function-declaration -Wno-error=deprecated-declarations -Wno-error=unused-result -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' \ + --with-ld-opt='-Wl,-z,relro -Wl,-z,now -lz -fPIC -L/usr/local/lib' \ + --with-file-aio \ + --with-compat \ + --with-debug \ + --with-threads \ + --with-pcre-jit \ + --with-http_ssl_module \ + --with-http_stub_status_module \ + --with-http_realip_module \ + --with-http_auth_request_module \ + --with-http_v2_module \ + --with-http_dav_module \ + --with-http_slice_module \ + --with-http_addition_module \ + --with-http_flv_module \ + --with-http_geoip_module=dynamic \ + --with-http_gunzip_module \ + --with-http_gzip_static_module \ + --with-http_image_filter_module=dynamic \ + --with-http_mp4_module \ + --with-http_perl_module=dynamic \ + --with-http_random_index_module \ + --with-http_secure_link_module \ + --with-http_sub_module \ + --with-http_xslt_module=dynamic \ + --with-mail=dynamic \ + --with-mail_ssl_module \ + --with-stream=dynamic \ + --with-stream_ssl_module \ + --with-stream_ssl_preread_module \ + --add-dynamic-module=http-headers-more-filter \ + --add-dynamic-module=http-auth-pam \ + --add-dynamic-module=http-dav-ext \ + --add-dynamic-module=http-ndk \ + --add-dynamic-module=http-echo \ + --add-dynamic-module=http-fancyindex \ + --add-dynamic-module=nchan \ + --add-dynamic-module=http-uploadprogress \ + --add-dynamic-module=http-subs-filter \ + --add-dynamic-module=ssl-ct \ + --add-dynamic-module=http-geoip2 \ + --add-dynamic-module=spnego-http-auth-nginx-module \ + --add-dynamic-module=http-auth-ldap \ +# --add-dynamic-module=nginx-audio-track-for-hls-module \ + --add-dynamic-module=ip2location-nginx \ + --add-dynamic-module=nginx-vod-module \ +# --add-dynamic-module=nginx-module-vts \ + --add-dynamic-module=mod-zip \ + --add-dynamic-module=nginx-http-user-agent \ + --add-dynamic-module=nginx-unzip-module \ + --add-dynamic-module=ngx-webp \ + --add-dynamic-module=set-misc-nginx-module \ + --add-dynamic-module=rtmp \ + --add-dynamic-module=http-upstream-fair \ + --add-dynamic-module=nginx-upstream-check-module \ + --add-dynamic-module=http-lua && \ + cp -fv ${PRE_DIR}/nginx-description-pak ${NGINX_SRC_DIR}/description-pak && \ + fakeroot checkinstall -D --pakdir=/builds/export --maintainer="EpicMorg, developer@epicm.org" --pkgname=nginx-custom --install=no -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +################################################################## +# Installing nginx from deb +################################################################## +ADD pre/ngninx.pre.tar.gz / +COPY --from=builder /builds/export /tmp/deb +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + geoip-database \ + geoip-bin \ + libgeoip1 \ + libmaxminddb0 \ + libgd3 \ + libxslt1.1 && \ + dpkg --force-all -i /tmp/deb/*.deb && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /usr/lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /usr/lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /usr/lib/libIP2Location.so.5 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /lib/libIP2Location.so.5 && \ + ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log && \ + ln -sf /etc/ssl/dhparam.pem /etc/nginx/dhparam.pem && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /var/cache/apt/archives/*.deb && \ + rm -rf /tmp/deb/* && \ + rm -rf /builds/* && \ + rm -rf /valve/* + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.15.12/main/Makefile b/linux/ecosystem/nginx/1.15.12/main/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.15.12/main/README.md b/linux/ecosystem/nginx/1.15.12/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/main/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/1.15.12/main/docker-compose.yml b/linux/ecosystem/nginx/1.15.12/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.15.12/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.15.12/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/ecosystem/nginx/1.15.12/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.15.12/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/ecosystem/nginx/1.15.12/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.15.12/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/main/pre/nginx-description-pak @@ -0,0 +1 @@ +Custom build of Nginx with some modules by EpicMorg. \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.15.12/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.15.12/main/pre/ngninx.pre.tar.gz new file mode 100644 index 000000000..bf9c27351 Binary files /dev/null and b/linux/ecosystem/nginx/1.15.12/main/pre/ngninx.pre.tar.gz differ diff --git a/linux/ecosystem/nginx/1.15.12/php/.env b/linux/ecosystem/nginx/1.15.12/php/.env new file mode 100644 index 000000000..ba910de48 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/php/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.15.12 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.15.12.tar.gz diff --git a/linux/ecosystem/nginx/1.15.12/php/Dockerfile b/linux/ecosystem/nginx/1.15.12/php/Dockerfile new file mode 100644 index 000000000..3b2664f17 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/php/Dockerfile @@ -0,0 +1,257 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 + +ARG P4API_VER=r20.1 +ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP7 +################################################################## +#installing php repo + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + smbclient libsmbclient libsmbclient-dev \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} + + +################################################################## +# compilling smbclient +################################################################## +RUN pecl install smbclient && \ + cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Installing php fpm for nginx from deb +################################################################## +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 +ARG PHP_VER=7.4 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini + +################################################################## +# Installing PHP7 +################################################################## +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi \ + php-pear \ + php7.4-gmp \ + php7.4-snmp \ + php7.4-ldap \ + php7.4-mail \ + php7.4-soap \ + php7.4-mysql \ + php7.4-memcached \ + php7.4-memcache \ + php7.4-igbinary \ + php7.4-interbase \ + php7.4-curl \ + php7.4-gd \ + php7.4-intl \ + php7.4-zip \ + php7.4-bcmath \ + php7.4-imap \ + php7.4-pspell \ + php7.4-sqlite3 \ + php7.4-tidy \ + php7.4-xmlrpc \ + php7.4-xml \ + php7.4-mbstring \ + php7.4-apcu \ + php7.4-common \ + php7.4-json \ + php7.4-readline \ + php7.4-enchant \ + php7.4-ssh2 \ + php7.4-oauth \ + php7.4-gmagick \ + php7.4-gnupg \ + php7.4-redis \ + smbclient libsmbclient \ +# php-smbclient \ + php7.4-yaml \ + php7.4-geoip \ + sendmail && \ + update-alternatives --set php /usr/bin/php7.4 && \ + phpenmod \ + snmp \ + gmp \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + gnupg \ + iconv \ + imap \ + json \ + mbstring \ + memcached \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} +RUN echo "extension=smbclient.so" > ${SMB_PHP_INI} && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ + php -m && \ + php -v + + + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.15.12/php/Makefile b/linux/ecosystem/nginx/1.15.12/php/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/php/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.15.12/php/README.md b/linux/ecosystem/nginx/1.15.12/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/php/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/1.15.12/php/docker-compose.yml b/linux/ecosystem/nginx/1.15.12/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/php/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-php" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/.env b/linux/ecosystem/nginx/1.15.12/rtmp-hls/.env new file mode 100644 index 000000000..ba910de48 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.15.12 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.15.12.tar.gz diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.15.12/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/Dockerfile @@ -0,0 +1,127 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG NGINX_RTMP_MODULE_VERSION=1.2.1 + +################################################################## +# Clear sources.list.d +################################################################## +RUN rm -rfv /etc/apt/sources.list.d/* + +################################################################## +# sid sources list +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN apt update + +################################################################## +# installing utils +################################################################## +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libpcre3-dev \ + librtmp1 \ + libtheora0 \ + libvorbis-dev \ + libmp3lame0 \ + libx264-dev \ + libx265-dev + + +################################################################## +# stretch sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.stretch.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx4 + + +################################################################## +# buster sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.buster.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx5 + + +################################################################## +# sid sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx6 + + +################################################################## +# installing deps for rtmp module +################################################################## +RUN mkdir -p /usr/share/nginx/html \ + /mnt/hls \ + /mnt/dash \ + /tmp/build && \ + chown -R www-data:www-data /mnt/hls && \ + chown -R www-data:www-data /mnt/dash && \ + chmod -R 755 /mnt/hls && \ + chmod -R 755 /mnt/dash && \ + cd /tmp/build && \ + wget https://github.com/arut/nginx-rtmp-module/archive/v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + tar -zxf v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + rm v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + cp /tmp/build/nginx-rtmp-module-${NGINX_RTMP_MODULE_VERSION}/stat.xsl /usr/share/nginx/html/stat.xsl && \ + rm -rf /tmp/build + + +################################################################## +# Forward logs to Docker +################################################################## +RUN ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log + + +################################################################## +# Copy nginx config file to container +################################################################## +RUN rm -rfv /etc/nginx/nginx.conf \ + /etc/nginx/sites-avalible/default +COPY conf/nginx.conf /etc/nginx/nginx.conf + + +################################################################## +# Copy html players to container +################################################################## +COPY players /usr/share/nginx/html/players + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + + +EXPOSE 1935 +EXPOSE 8080 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.15.12/rtmp-hls/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/README.md b/linux/ecosystem/nginx/1.15.12/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/README.md @@ -0,0 +1,78 @@ +# RTMP-HLS Docker + +**BASED ON** [TareqAlqutami/rtmp-hls-server](https://github.com/TareqAlqutami/rtmp-hls-server) + +**Docker image for video streaming server that supports RTMP, HLS, and DASH streams.** + +## Description + +This Docker image can be used to create a video streaming server that supports [**RTMP**](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol), [**HLS**](https://en.wikipedia.org/wiki/HTTP_Live_Streaming), [**DASH**](https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP) out of the box. +It also allows adaptive streaming and custom transcoding of video streams. +All modules are built from source on Debian and Alpine Linux base images. + +## Features + * The backend is [**Nginx**](http://nginx.org/en/) with [**nginx-rtmp-module**](https://github.com/arut/nginx-rtmp-module). + * [**FFmpeg**](https://www.ffmpeg.org/) for transcoding and adaptive streaming. + * Default settings: + * RTMP is ON + * HLS is ON (adaptive, 5 variants) + * DASH is ON + * Other Nginx configuration files are also provided to allow for RTMP-only streams or no-FFmpeg transcoding. + * Statistic page of RTMP streams at `http://:/stats`. + * Available web video players (based on [video.js](https://videojs.com/) and [hls.js](https://github.com/video-dev/hls.js/)) at `/usr/share/nginx/html/players`. + +## Usage + +### To run the server +``` +docker run -d -p 1935:1935 -p 8080:8080 epicmorg/balancer:rtmp-hls +``` + +To run with custom conf file: +``` +docker run -d -p 1935:1935 -p 8080:8080 -v custom.conf:/etc/nginx/nginx.conf epicmorg/balancer:rtmp-hls +``` +where `custom.conf` is the new conf file for Nginx. + +### To stream to the server + * **Stream live RTMP content to:** + ``` + rtmp://:1935/live/ + ``` + where `` is any stream key you specify. + + * **Configure [OBS](https://obsproject.com/) to stream content:**
+Go to Settings > Stream, choose the following settings: + * Service: Custom Streaming Server. + * Server: `rtmp://:1935/live`. + * Stream key: anything you want, however provided video players assume stream key is `test` + +### To view the stream + * **Using [VLC](https://www.videolan.org/vlc/index.html):** + * Go to Media > Open Network Stream. + * Enter the streaming URL: `rtmp://:1935/live/` + Replace `` with the IP of where the server is running, and + `` with the stream key you used when setting up the stream. + * For HLS and DASH, the URLs are of the forms: + `http://:8080/hls/.m3u8` and + `http://:8080/dash/_src.mpd` respectively. + * Click Play. + +* **Using provided web players:**
+The provided demo players assume the stream-key is called `test` and the player is opened in localhost. + * To play RTMP content (requires Flash): `http://localhost:8080/players/rtmp.html` + * To play HLS content: `http://localhost:8080/players/hls.html` + * To play HLS content using hls.js library: `http://localhost:8080/players/hls_hlsjs.html` + * To play DASH content: `http://localhost:8080/players/dash.html` + * To play RTMP and HLS contents on the same page: `http://localhost:8080/players/rtmp_hls.html` + + **Notes:** + + * These web players are hardcoded to play stream key "test" at localhost. + * To change the stream source for these players. Download the html files and modify the `src` attribute in the video tag in the html file. You can then mount the modified files to the container as follows: + ``` + docker run -d -p 1935:1935 -p 8080:8080 -v custom_players:/usr/share/nginx/html/players epicmorg/balancer:rtmp-hls + ``` + where `custom_players` is the directory holding the modified html files. + + diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.15.12/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/conf/nginx.conf @@ -0,0 +1,134 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + + # for each received stream, transcode for adaptive streaming + # This single ffmpeg command takes the input and transforms + # the source into 4 different streams with different bitrates + # and qualities. # these settings respect the aspect ratio. + exec_push /usr/bin/ffmpeg -i rtmp://localhost:1935/$app/$name -async 1 -vsync -1 + -c:v libx264 -c:a aac -b:v 256k -b:a 64k -vf "scale=480:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_low + -c:v libx264 -c:a aac -b:v 768k -b:a 128k -vf "scale=720:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_mid + -c:v libx264 -c:a aac -b:v 1024k -b:a 128k -vf "scale=960:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_high + -c:v libx264 -c:a aac -b:v 1920k -b:a 128k -vf "scale=1280:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_hd720 + -c copy -f flv rtmp://localhost:1935/show/$name_src; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 20; + hls_path /mnt/hls/; # hls fragments path + # Instruct clients to adjust resolution according to bandwidth + hls_variant _src BANDWIDTH=4096000; # Source bitrate, source resolution + hls_variant _hd720 BANDWIDTH=2048000; # High bitrate, HD 720p resolution + hls_variant _high BANDWIDTH=1152000; # High bitrate, higher-than-SD resolution + hls_variant _mid BANDWIDTH=448000; # Medium bitrate, SD resolution + hls_variant _low BANDWIDTH=288000; # Low bitrate, sub-SD resolution + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 20; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/ecosystem/nginx/1.15.12/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/conf/nginx_no-ffmpeg.conf @@ -0,0 +1,118 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + push rtmp://localhost:1935/show; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 10; + hls_path /mnt/hls/; # hls fragments path + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 10; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/ecosystem/nginx/1.15.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf @@ -0,0 +1,16 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +rtmp_auto_push on; +events {} +rtmp { + server { + listen 1935; + listen [::]:1935; + + application live { + live on; + record off; + } + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.15.12/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-rtmp-hls" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/hls.html new file mode 100644 index 000000000..15d95b4c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/hls.html @@ -0,0 +1,23 @@ + + + + + HLS Live Streaming + + + + +

HLS Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/hls_hlsjs.html new file mode 100644 index 000000000..0237e7a52 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/hls_hlsjs.html @@ -0,0 +1,41 @@ + + + + + HLS streaming + + + + + + + + + + +

HLS Player (using hls.js)

+ +
+
+ +
+
+ + + + + + + diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/rtmp.html new file mode 100644 index 000000000..d8ce85610 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/rtmp.html @@ -0,0 +1,24 @@ + + + + + RTMP Live Streaming + Live Streaming + + + + + + + +

RTMP Player

+ + + + + diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/rtmp_hls.html new file mode 100644 index 000000000..35617e913 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/rtmp_hls.html @@ -0,0 +1,30 @@ + + + + + Live Streaming + + + + + + + + +

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/sources.list.d/sources.buster.list b/linux/ecosystem/nginx/1.15.12/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ buster main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster main contrib non-free +deb http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb http://httpredir.debian.org/debian-multimedia/ buster-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/sources.list.d/sources.sid.list b/linux/ecosystem/nginx/1.15.12/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..465c737af --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ sid main contrib non-free +deb-src http://httpredir.debian.org/debian/ sid main contrib non-free +deb http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free + +#backports +#deb http://httpredir.debian.org/debian/ testing-backports main contrib non-free +#deb-src http://httpredir.debian.org/debian/ testing-backports main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ testing-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ testing-security main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ sid main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/nginx/1.15.12/rtmp-hls/sources.list.d/sources.stretch.list b/linux/ecosystem/nginx/1.15.12/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..617bf9bb6 --- /dev/null +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ stretch main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb http://httpredir.debian.org/debian-multimedia/ stretch-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch-backports main diff --git a/linux/ecosystem/nginx/1.16.1/main/.env b/linux/ecosystem/nginx/1.16.1/main/.env new file mode 100644 index 000000000..0a94c2b81 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.16.1 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.16.1.tar.gz diff --git a/linux/ecosystem/nginx/1.16.1/main/Dockerfile b/linux/ecosystem/nginx/1.16.1/main/Dockerfile new file mode 100644 index 000000000..907a090fe --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/main/Dockerfile @@ -0,0 +1,245 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG PRE_DIR=${BUILDS_DIR}/pre +ARG NGINX_SRC_DIR=${SRC_DIR}/nginx +ARG NGINX_VERSION +ARG NGINX_DOWNLOAD_URL +ARG LUAJIT_INC=/usr/local/include/luajit-2.1 +ARG LUAJIT_LIB=/usr/local/lib + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${PRE_DIR} ${NGINX_SRC_DIR} /usr/lib/nginx +ADD pre/luajit2-description-pak ${PRE_DIR} +ADD pre/nginx-description-pak ${PRE_DIR} +ADD pre/ip2location-description-pak ${PRE_DIR} + +################################################################## +# IP2Location support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2 && \ + cp -fv ${PRE_DIR}/ip2location-description-pak ${SRC_DIR}/ip2/description-pak && \ + cd ${SRC_DIR}/ip2 && \ + ls -las && \ + autoreconf -i -v --force && \ + aclocal && \ + automake --gnu --add-missing && \ + autoconf && \ + autoreconf -i -v --force && \ + ./configure && \ + ls -las && \ + make clean && \ + make && \ + make -C data convert && \ + make check && \ + ls -las && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=ip2-custom --conflicts=ip2 --install=yes -y && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + dpkg --force-all -i ${EXPORT_DIR}/*.deb + +################################################################## +# luaJIT 2 support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/openresty/luajit2.git luajit2 && \ + cp -fv ${PRE_DIR}/luajit2-description-pak ${SRC_DIR}/luajit2/description-pak && \ + cd ${SRC_DIR}/luajit2 && \ + make && \ + make install && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=luajit2-custom --conflicts=luajit2 --install=no -y + +################################################################## +# nginx preparing +################################################################## +RUN wget -qO - ${NGINX_DOWNLOAD_URL} | tar -zxv --strip-components=1 -C ${NGINX_SRC_DIR} && \ + cd ${NGINX_SRC_DIR} && \ + git clone https://github.com/openresty/headers-more-nginx-module.git http-headers-more-filter && \ + git clone https://github.com/sto/ngx_http_auth_pam_module.git http-auth-pam && \ + git clone https://github.com/arut/nginx-dav-ext-module.git http-dav-ext && \ + git clone https://github.com/openresty/echo-nginx-module.git http-echo && \ + git clone https://github.com/aperezdc/ngx-fancyindex.git http-fancyindex && \ + git clone https://github.com/slact/nchan.git nchan && \ + git clone https://github.com/masterzen/nginx-upload-progress-module.git http-uploadprogress && \ + git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module http-subs-filter && \ + git clone https://github.com/grahamedgecombe/nginx-ct.git ssl-ct && \ + git clone https://github.com/stnoonan/spnego-http-auth-nginx-module.git spnego-http-auth-nginx-module && \ + git clone https://github.com/leev/ngx_http_geoip2_module http-geoip2 && \ + git clone https://github.com/flavioribeiro/nginx-audio-track-for-hls-module.git nginx-audio-track-for-hls-module && \ + git clone https://github.com/chrislim2888/ip2location-nginx.git ip2location-nginx && \ + git clone https://github.com/kaltura/nginx-vod-module.git nginx-vod-module && \ + git clone https://github.com/vozlt/nginx-module-vts.git nginx-module-vts && \ + git clone https://github.com/evanmiller/mod_zip.git mod-zip && \ + git clone https://github.com/alibaba/nginx-http-user-agent.git nginx-http-user-agent && \ + git clone https://github.com/youzee/nginx-unzip-module.git nginx-unzip-module && \ + git clone https://github.com/vladbondarenko/ngx_webp.git ngx-webp && \ + git clone https://github.com/openresty/xss-nginx-module.git xss-nginx-module && \ + git clone https://github.com/openresty/set-misc-nginx-module.git set-misc-nginx-module && \ + git clone https://github.com/arut/nginx-rtmp-module.git rtmp && \ + git clone https://github.com/kvspb/nginx-auth-ldap.git http-auth-ldap && \ + git clone https://github.com/simplresty/ngx_devel_kit.git http-ndk && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2location-c-7.0.0 && \ + git clone https://github.com/itoffshore/nginx-upstream-fair.git http-upstream-fair && \ + git clone https://github.com/yaoweibin/nginx_upstream_check_module.git nginx-upstream-check-module && \ + git clone https://github.com/openresty/lua-nginx-module http-lua + +################################################################## +# nginx compilling +################################################################## +RUN cd ${NGINX_SRC_DIR} && \ + ./configure \ + --sbin-path=/usr/sbin/nginx \ + --prefix=/usr/share/nginx \ + --conf-path=/etc/nginx/nginx.conf \ + --http-log-path=/var/log/nginx/access.log \ + --error-log-path=/var/log/nginx/error.log \ + --lock-path=/var/lock/nginx.lock \ + --pid-path=/run/nginx.pid \ + --modules-path=/usr/lib/nginx/modules \ + --http-client-body-temp-path=/var/lib/nginx/body \ + --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ + --http-proxy-temp-path=/var/lib/nginx/proxy \ + --http-scgi-temp-path=/var/lib/nginx/scgi \ + --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ + --with-cc-opt='-I/usr/local/include/luajit-2.1 -g -O2 -lz -fstack-protector-strong -Wformat -Wno-error=date-time -Wno-error=implicit-fallthrough= -Wno-error=cast-function-type -Wno-error=format-security -Wno-error=implicit-function-declaration -Wno-error=deprecated-declarations -Wno-error=unused-result -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' \ + --with-ld-opt='-Wl,-z,relro -Wl,-z,now -lz -fPIC -L/usr/local/lib' \ + --with-file-aio \ + --with-compat \ + --with-debug \ + --with-threads \ + --with-pcre-jit \ + --with-http_ssl_module \ + --with-http_stub_status_module \ + --with-http_realip_module \ + --with-http_auth_request_module \ + --with-http_v2_module \ + --with-http_dav_module \ + --with-http_slice_module \ + --with-http_addition_module \ + --with-http_flv_module \ + --with-http_geoip_module=dynamic \ + --with-http_gunzip_module \ + --with-http_gzip_static_module \ + --with-http_image_filter_module=dynamic \ + --with-http_mp4_module \ + --with-http_perl_module=dynamic \ + --with-http_random_index_module \ + --with-http_secure_link_module \ + --with-http_sub_module \ + --with-http_xslt_module=dynamic \ + --with-mail=dynamic \ + --with-mail_ssl_module \ + --with-stream=dynamic \ + --with-stream_ssl_module \ + --with-stream_ssl_preread_module \ + --add-dynamic-module=http-headers-more-filter \ + --add-dynamic-module=http-auth-pam \ + --add-dynamic-module=http-dav-ext \ + --add-dynamic-module=http-ndk \ + --add-dynamic-module=http-echo \ + --add-dynamic-module=http-fancyindex \ + --add-dynamic-module=nchan \ + --add-dynamic-module=http-uploadprogress \ + --add-dynamic-module=http-subs-filter \ + --add-dynamic-module=ssl-ct \ + --add-dynamic-module=http-geoip2 \ + --add-dynamic-module=spnego-http-auth-nginx-module \ + --add-dynamic-module=http-auth-ldap \ +# --add-dynamic-module=nginx-audio-track-for-hls-module \ + --add-dynamic-module=ip2location-nginx \ + --add-dynamic-module=nginx-vod-module \ +# --add-dynamic-module=nginx-module-vts \ + --add-dynamic-module=mod-zip \ + --add-dynamic-module=nginx-http-user-agent \ + --add-dynamic-module=nginx-unzip-module \ + --add-dynamic-module=ngx-webp \ + --add-dynamic-module=set-misc-nginx-module \ + --add-dynamic-module=rtmp \ + --add-dynamic-module=http-upstream-fair \ + --add-dynamic-module=nginx-upstream-check-module \ + --add-dynamic-module=http-lua && \ + cp -fv ${PRE_DIR}/nginx-description-pak ${NGINX_SRC_DIR}/description-pak && \ + fakeroot checkinstall -D --pakdir=/builds/export --maintainer="EpicMorg, developer@epicm.org" --pkgname=nginx-custom --install=no -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +################################################################## +# Installing nginx from deb +################################################################## +ADD pre/ngninx.pre.tar.gz / +COPY --from=builder /builds/export /tmp/deb +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + geoip-database \ + geoip-bin \ + libgeoip1 \ + libmaxminddb0 \ + libgd3 \ + libxslt1.1 && \ + dpkg --force-all -i /tmp/deb/*.deb && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /usr/lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /usr/lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /usr/lib/libIP2Location.so.5 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /lib/libIP2Location.so.5 && \ + ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log && \ + ln -sf /etc/ssl/dhparam.pem /etc/nginx/dhparam.pem && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /var/cache/apt/archives/*.deb && \ + rm -rf /tmp/deb/* && \ + rm -rf /builds/* && \ + rm -rf /valve/* + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.16.1/main/Makefile b/linux/ecosystem/nginx/1.16.1/main/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.16.1/main/README.md b/linux/ecosystem/nginx/1.16.1/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/main/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/1.16.1/main/docker-compose.yml b/linux/ecosystem/nginx/1.16.1/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.16.1/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.16.1/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/ecosystem/nginx/1.16.1/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.16.1/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/ecosystem/nginx/1.16.1/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.16.1/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/main/pre/nginx-description-pak @@ -0,0 +1 @@ +Custom build of Nginx with some modules by EpicMorg. \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.16.1/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.16.1/main/pre/ngninx.pre.tar.gz new file mode 100644 index 000000000..bf9c27351 Binary files /dev/null and b/linux/ecosystem/nginx/1.16.1/main/pre/ngninx.pre.tar.gz differ diff --git a/linux/ecosystem/nginx/1.16.1/php/.env b/linux/ecosystem/nginx/1.16.1/php/.env new file mode 100644 index 000000000..0a94c2b81 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/php/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.16.1 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.16.1.tar.gz diff --git a/linux/ecosystem/nginx/1.16.1/php/Dockerfile b/linux/ecosystem/nginx/1.16.1/php/Dockerfile new file mode 100644 index 000000000..3b2664f17 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/php/Dockerfile @@ -0,0 +1,257 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 + +ARG P4API_VER=r20.1 +ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP7 +################################################################## +#installing php repo + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + smbclient libsmbclient libsmbclient-dev \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} + + +################################################################## +# compilling smbclient +################################################################## +RUN pecl install smbclient && \ + cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Installing php fpm for nginx from deb +################################################################## +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 +ARG PHP_VER=7.4 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini + +################################################################## +# Installing PHP7 +################################################################## +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi \ + php-pear \ + php7.4-gmp \ + php7.4-snmp \ + php7.4-ldap \ + php7.4-mail \ + php7.4-soap \ + php7.4-mysql \ + php7.4-memcached \ + php7.4-memcache \ + php7.4-igbinary \ + php7.4-interbase \ + php7.4-curl \ + php7.4-gd \ + php7.4-intl \ + php7.4-zip \ + php7.4-bcmath \ + php7.4-imap \ + php7.4-pspell \ + php7.4-sqlite3 \ + php7.4-tidy \ + php7.4-xmlrpc \ + php7.4-xml \ + php7.4-mbstring \ + php7.4-apcu \ + php7.4-common \ + php7.4-json \ + php7.4-readline \ + php7.4-enchant \ + php7.4-ssh2 \ + php7.4-oauth \ + php7.4-gmagick \ + php7.4-gnupg \ + php7.4-redis \ + smbclient libsmbclient \ +# php-smbclient \ + php7.4-yaml \ + php7.4-geoip \ + sendmail && \ + update-alternatives --set php /usr/bin/php7.4 && \ + phpenmod \ + snmp \ + gmp \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + gnupg \ + iconv \ + imap \ + json \ + mbstring \ + memcached \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} +RUN echo "extension=smbclient.so" > ${SMB_PHP_INI} && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ + php -m && \ + php -v + + + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.16.1/php/Makefile b/linux/ecosystem/nginx/1.16.1/php/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/php/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.16.1/php/README.md b/linux/ecosystem/nginx/1.16.1/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/php/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/1.16.1/php/docker-compose.yml b/linux/ecosystem/nginx/1.16.1/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/php/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-php" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/.env b/linux/ecosystem/nginx/1.16.1/rtmp-hls/.env new file mode 100644 index 000000000..0a94c2b81 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.16.1 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.16.1.tar.gz diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.16.1/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/Dockerfile @@ -0,0 +1,127 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG NGINX_RTMP_MODULE_VERSION=1.2.1 + +################################################################## +# Clear sources.list.d +################################################################## +RUN rm -rfv /etc/apt/sources.list.d/* + +################################################################## +# sid sources list +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN apt update + +################################################################## +# installing utils +################################################################## +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libpcre3-dev \ + librtmp1 \ + libtheora0 \ + libvorbis-dev \ + libmp3lame0 \ + libx264-dev \ + libx265-dev + + +################################################################## +# stretch sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.stretch.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx4 + + +################################################################## +# buster sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.buster.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx5 + + +################################################################## +# sid sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx6 + + +################################################################## +# installing deps for rtmp module +################################################################## +RUN mkdir -p /usr/share/nginx/html \ + /mnt/hls \ + /mnt/dash \ + /tmp/build && \ + chown -R www-data:www-data /mnt/hls && \ + chown -R www-data:www-data /mnt/dash && \ + chmod -R 755 /mnt/hls && \ + chmod -R 755 /mnt/dash && \ + cd /tmp/build && \ + wget https://github.com/arut/nginx-rtmp-module/archive/v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + tar -zxf v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + rm v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + cp /tmp/build/nginx-rtmp-module-${NGINX_RTMP_MODULE_VERSION}/stat.xsl /usr/share/nginx/html/stat.xsl && \ + rm -rf /tmp/build + + +################################################################## +# Forward logs to Docker +################################################################## +RUN ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log + + +################################################################## +# Copy nginx config file to container +################################################################## +RUN rm -rfv /etc/nginx/nginx.conf \ + /etc/nginx/sites-avalible/default +COPY conf/nginx.conf /etc/nginx/nginx.conf + + +################################################################## +# Copy html players to container +################################################################## +COPY players /usr/share/nginx/html/players + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + + +EXPOSE 1935 +EXPOSE 8080 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.16.1/rtmp-hls/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/README.md b/linux/ecosystem/nginx/1.16.1/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/README.md @@ -0,0 +1,78 @@ +# RTMP-HLS Docker + +**BASED ON** [TareqAlqutami/rtmp-hls-server](https://github.com/TareqAlqutami/rtmp-hls-server) + +**Docker image for video streaming server that supports RTMP, HLS, and DASH streams.** + +## Description + +This Docker image can be used to create a video streaming server that supports [**RTMP**](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol), [**HLS**](https://en.wikipedia.org/wiki/HTTP_Live_Streaming), [**DASH**](https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP) out of the box. +It also allows adaptive streaming and custom transcoding of video streams. +All modules are built from source on Debian and Alpine Linux base images. + +## Features + * The backend is [**Nginx**](http://nginx.org/en/) with [**nginx-rtmp-module**](https://github.com/arut/nginx-rtmp-module). + * [**FFmpeg**](https://www.ffmpeg.org/) for transcoding and adaptive streaming. + * Default settings: + * RTMP is ON + * HLS is ON (adaptive, 5 variants) + * DASH is ON + * Other Nginx configuration files are also provided to allow for RTMP-only streams or no-FFmpeg transcoding. + * Statistic page of RTMP streams at `http://:/stats`. + * Available web video players (based on [video.js](https://videojs.com/) and [hls.js](https://github.com/video-dev/hls.js/)) at `/usr/share/nginx/html/players`. + +## Usage + +### To run the server +``` +docker run -d -p 1935:1935 -p 8080:8080 epicmorg/balancer:rtmp-hls +``` + +To run with custom conf file: +``` +docker run -d -p 1935:1935 -p 8080:8080 -v custom.conf:/etc/nginx/nginx.conf epicmorg/balancer:rtmp-hls +``` +where `custom.conf` is the new conf file for Nginx. + +### To stream to the server + * **Stream live RTMP content to:** + ``` + rtmp://:1935/live/ + ``` + where `` is any stream key you specify. + + * **Configure [OBS](https://obsproject.com/) to stream content:**
+Go to Settings > Stream, choose the following settings: + * Service: Custom Streaming Server. + * Server: `rtmp://:1935/live`. + * Stream key: anything you want, however provided video players assume stream key is `test` + +### To view the stream + * **Using [VLC](https://www.videolan.org/vlc/index.html):** + * Go to Media > Open Network Stream. + * Enter the streaming URL: `rtmp://:1935/live/` + Replace `` with the IP of where the server is running, and + `` with the stream key you used when setting up the stream. + * For HLS and DASH, the URLs are of the forms: + `http://:8080/hls/.m3u8` and + `http://:8080/dash/_src.mpd` respectively. + * Click Play. + +* **Using provided web players:**
+The provided demo players assume the stream-key is called `test` and the player is opened in localhost. + * To play RTMP content (requires Flash): `http://localhost:8080/players/rtmp.html` + * To play HLS content: `http://localhost:8080/players/hls.html` + * To play HLS content using hls.js library: `http://localhost:8080/players/hls_hlsjs.html` + * To play DASH content: `http://localhost:8080/players/dash.html` + * To play RTMP and HLS contents on the same page: `http://localhost:8080/players/rtmp_hls.html` + + **Notes:** + + * These web players are hardcoded to play stream key "test" at localhost. + * To change the stream source for these players. Download the html files and modify the `src` attribute in the video tag in the html file. You can then mount the modified files to the container as follows: + ``` + docker run -d -p 1935:1935 -p 8080:8080 -v custom_players:/usr/share/nginx/html/players epicmorg/balancer:rtmp-hls + ``` + where `custom_players` is the directory holding the modified html files. + + diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.16.1/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/conf/nginx.conf @@ -0,0 +1,134 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + + # for each received stream, transcode for adaptive streaming + # This single ffmpeg command takes the input and transforms + # the source into 4 different streams with different bitrates + # and qualities. # these settings respect the aspect ratio. + exec_push /usr/bin/ffmpeg -i rtmp://localhost:1935/$app/$name -async 1 -vsync -1 + -c:v libx264 -c:a aac -b:v 256k -b:a 64k -vf "scale=480:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_low + -c:v libx264 -c:a aac -b:v 768k -b:a 128k -vf "scale=720:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_mid + -c:v libx264 -c:a aac -b:v 1024k -b:a 128k -vf "scale=960:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_high + -c:v libx264 -c:a aac -b:v 1920k -b:a 128k -vf "scale=1280:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_hd720 + -c copy -f flv rtmp://localhost:1935/show/$name_src; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 20; + hls_path /mnt/hls/; # hls fragments path + # Instruct clients to adjust resolution according to bandwidth + hls_variant _src BANDWIDTH=4096000; # Source bitrate, source resolution + hls_variant _hd720 BANDWIDTH=2048000; # High bitrate, HD 720p resolution + hls_variant _high BANDWIDTH=1152000; # High bitrate, higher-than-SD resolution + hls_variant _mid BANDWIDTH=448000; # Medium bitrate, SD resolution + hls_variant _low BANDWIDTH=288000; # Low bitrate, sub-SD resolution + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 20; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/ecosystem/nginx/1.16.1/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/conf/nginx_no-ffmpeg.conf @@ -0,0 +1,118 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + push rtmp://localhost:1935/show; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 10; + hls_path /mnt/hls/; # hls fragments path + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 10; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/ecosystem/nginx/1.16.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf @@ -0,0 +1,16 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +rtmp_auto_push on; +events {} +rtmp { + server { + listen 1935; + listen [::]:1935; + + application live { + live on; + record off; + } + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.16.1/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-rtmp-hls" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/hls.html new file mode 100644 index 000000000..15d95b4c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/hls.html @@ -0,0 +1,23 @@ + + + + + HLS Live Streaming + + + + +

HLS Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/hls_hlsjs.html new file mode 100644 index 000000000..0237e7a52 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/hls_hlsjs.html @@ -0,0 +1,41 @@ + + + + + HLS streaming + + + + + + + + + + +

HLS Player (using hls.js)

+ +
+
+ +
+
+ + + + + + + diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/rtmp.html new file mode 100644 index 000000000..d8ce85610 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/rtmp.html @@ -0,0 +1,24 @@ + + + + + RTMP Live Streaming + Live Streaming + + + + + + + +

RTMP Player

+ + + + + diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/rtmp_hls.html new file mode 100644 index 000000000..35617e913 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/rtmp_hls.html @@ -0,0 +1,30 @@ + + + + + Live Streaming + + + + + + + + +

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/sources.list.d/sources.buster.list b/linux/ecosystem/nginx/1.16.1/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ buster main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster main contrib non-free +deb http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb http://httpredir.debian.org/debian-multimedia/ buster-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/sources.list.d/sources.sid.list b/linux/ecosystem/nginx/1.16.1/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..465c737af --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ sid main contrib non-free +deb-src http://httpredir.debian.org/debian/ sid main contrib non-free +deb http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free + +#backports +#deb http://httpredir.debian.org/debian/ testing-backports main contrib non-free +#deb-src http://httpredir.debian.org/debian/ testing-backports main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ testing-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ testing-security main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ sid main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/nginx/1.16.1/rtmp-hls/sources.list.d/sources.stretch.list b/linux/ecosystem/nginx/1.16.1/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..617bf9bb6 --- /dev/null +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ stretch main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb http://httpredir.debian.org/debian-multimedia/ stretch-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch-backports main diff --git a/linux/ecosystem/nginx/1.17.10/main/.env b/linux/ecosystem/nginx/1.17.10/main/.env new file mode 100644 index 000000000..0349cbaaf --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.17.10 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.17.10.tar.gz diff --git a/linux/ecosystem/nginx/1.17.10/main/Dockerfile b/linux/ecosystem/nginx/1.17.10/main/Dockerfile new file mode 100644 index 000000000..907a090fe --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/main/Dockerfile @@ -0,0 +1,245 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG PRE_DIR=${BUILDS_DIR}/pre +ARG NGINX_SRC_DIR=${SRC_DIR}/nginx +ARG NGINX_VERSION +ARG NGINX_DOWNLOAD_URL +ARG LUAJIT_INC=/usr/local/include/luajit-2.1 +ARG LUAJIT_LIB=/usr/local/lib + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${PRE_DIR} ${NGINX_SRC_DIR} /usr/lib/nginx +ADD pre/luajit2-description-pak ${PRE_DIR} +ADD pre/nginx-description-pak ${PRE_DIR} +ADD pre/ip2location-description-pak ${PRE_DIR} + +################################################################## +# IP2Location support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2 && \ + cp -fv ${PRE_DIR}/ip2location-description-pak ${SRC_DIR}/ip2/description-pak && \ + cd ${SRC_DIR}/ip2 && \ + ls -las && \ + autoreconf -i -v --force && \ + aclocal && \ + automake --gnu --add-missing && \ + autoconf && \ + autoreconf -i -v --force && \ + ./configure && \ + ls -las && \ + make clean && \ + make && \ + make -C data convert && \ + make check && \ + ls -las && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=ip2-custom --conflicts=ip2 --install=yes -y && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + dpkg --force-all -i ${EXPORT_DIR}/*.deb + +################################################################## +# luaJIT 2 support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/openresty/luajit2.git luajit2 && \ + cp -fv ${PRE_DIR}/luajit2-description-pak ${SRC_DIR}/luajit2/description-pak && \ + cd ${SRC_DIR}/luajit2 && \ + make && \ + make install && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=luajit2-custom --conflicts=luajit2 --install=no -y + +################################################################## +# nginx preparing +################################################################## +RUN wget -qO - ${NGINX_DOWNLOAD_URL} | tar -zxv --strip-components=1 -C ${NGINX_SRC_DIR} && \ + cd ${NGINX_SRC_DIR} && \ + git clone https://github.com/openresty/headers-more-nginx-module.git http-headers-more-filter && \ + git clone https://github.com/sto/ngx_http_auth_pam_module.git http-auth-pam && \ + git clone https://github.com/arut/nginx-dav-ext-module.git http-dav-ext && \ + git clone https://github.com/openresty/echo-nginx-module.git http-echo && \ + git clone https://github.com/aperezdc/ngx-fancyindex.git http-fancyindex && \ + git clone https://github.com/slact/nchan.git nchan && \ + git clone https://github.com/masterzen/nginx-upload-progress-module.git http-uploadprogress && \ + git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module http-subs-filter && \ + git clone https://github.com/grahamedgecombe/nginx-ct.git ssl-ct && \ + git clone https://github.com/stnoonan/spnego-http-auth-nginx-module.git spnego-http-auth-nginx-module && \ + git clone https://github.com/leev/ngx_http_geoip2_module http-geoip2 && \ + git clone https://github.com/flavioribeiro/nginx-audio-track-for-hls-module.git nginx-audio-track-for-hls-module && \ + git clone https://github.com/chrislim2888/ip2location-nginx.git ip2location-nginx && \ + git clone https://github.com/kaltura/nginx-vod-module.git nginx-vod-module && \ + git clone https://github.com/vozlt/nginx-module-vts.git nginx-module-vts && \ + git clone https://github.com/evanmiller/mod_zip.git mod-zip && \ + git clone https://github.com/alibaba/nginx-http-user-agent.git nginx-http-user-agent && \ + git clone https://github.com/youzee/nginx-unzip-module.git nginx-unzip-module && \ + git clone https://github.com/vladbondarenko/ngx_webp.git ngx-webp && \ + git clone https://github.com/openresty/xss-nginx-module.git xss-nginx-module && \ + git clone https://github.com/openresty/set-misc-nginx-module.git set-misc-nginx-module && \ + git clone https://github.com/arut/nginx-rtmp-module.git rtmp && \ + git clone https://github.com/kvspb/nginx-auth-ldap.git http-auth-ldap && \ + git clone https://github.com/simplresty/ngx_devel_kit.git http-ndk && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2location-c-7.0.0 && \ + git clone https://github.com/itoffshore/nginx-upstream-fair.git http-upstream-fair && \ + git clone https://github.com/yaoweibin/nginx_upstream_check_module.git nginx-upstream-check-module && \ + git clone https://github.com/openresty/lua-nginx-module http-lua + +################################################################## +# nginx compilling +################################################################## +RUN cd ${NGINX_SRC_DIR} && \ + ./configure \ + --sbin-path=/usr/sbin/nginx \ + --prefix=/usr/share/nginx \ + --conf-path=/etc/nginx/nginx.conf \ + --http-log-path=/var/log/nginx/access.log \ + --error-log-path=/var/log/nginx/error.log \ + --lock-path=/var/lock/nginx.lock \ + --pid-path=/run/nginx.pid \ + --modules-path=/usr/lib/nginx/modules \ + --http-client-body-temp-path=/var/lib/nginx/body \ + --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ + --http-proxy-temp-path=/var/lib/nginx/proxy \ + --http-scgi-temp-path=/var/lib/nginx/scgi \ + --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ + --with-cc-opt='-I/usr/local/include/luajit-2.1 -g -O2 -lz -fstack-protector-strong -Wformat -Wno-error=date-time -Wno-error=implicit-fallthrough= -Wno-error=cast-function-type -Wno-error=format-security -Wno-error=implicit-function-declaration -Wno-error=deprecated-declarations -Wno-error=unused-result -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' \ + --with-ld-opt='-Wl,-z,relro -Wl,-z,now -lz -fPIC -L/usr/local/lib' \ + --with-file-aio \ + --with-compat \ + --with-debug \ + --with-threads \ + --with-pcre-jit \ + --with-http_ssl_module \ + --with-http_stub_status_module \ + --with-http_realip_module \ + --with-http_auth_request_module \ + --with-http_v2_module \ + --with-http_dav_module \ + --with-http_slice_module \ + --with-http_addition_module \ + --with-http_flv_module \ + --with-http_geoip_module=dynamic \ + --with-http_gunzip_module \ + --with-http_gzip_static_module \ + --with-http_image_filter_module=dynamic \ + --with-http_mp4_module \ + --with-http_perl_module=dynamic \ + --with-http_random_index_module \ + --with-http_secure_link_module \ + --with-http_sub_module \ + --with-http_xslt_module=dynamic \ + --with-mail=dynamic \ + --with-mail_ssl_module \ + --with-stream=dynamic \ + --with-stream_ssl_module \ + --with-stream_ssl_preread_module \ + --add-dynamic-module=http-headers-more-filter \ + --add-dynamic-module=http-auth-pam \ + --add-dynamic-module=http-dav-ext \ + --add-dynamic-module=http-ndk \ + --add-dynamic-module=http-echo \ + --add-dynamic-module=http-fancyindex \ + --add-dynamic-module=nchan \ + --add-dynamic-module=http-uploadprogress \ + --add-dynamic-module=http-subs-filter \ + --add-dynamic-module=ssl-ct \ + --add-dynamic-module=http-geoip2 \ + --add-dynamic-module=spnego-http-auth-nginx-module \ + --add-dynamic-module=http-auth-ldap \ +# --add-dynamic-module=nginx-audio-track-for-hls-module \ + --add-dynamic-module=ip2location-nginx \ + --add-dynamic-module=nginx-vod-module \ +# --add-dynamic-module=nginx-module-vts \ + --add-dynamic-module=mod-zip \ + --add-dynamic-module=nginx-http-user-agent \ + --add-dynamic-module=nginx-unzip-module \ + --add-dynamic-module=ngx-webp \ + --add-dynamic-module=set-misc-nginx-module \ + --add-dynamic-module=rtmp \ + --add-dynamic-module=http-upstream-fair \ + --add-dynamic-module=nginx-upstream-check-module \ + --add-dynamic-module=http-lua && \ + cp -fv ${PRE_DIR}/nginx-description-pak ${NGINX_SRC_DIR}/description-pak && \ + fakeroot checkinstall -D --pakdir=/builds/export --maintainer="EpicMorg, developer@epicm.org" --pkgname=nginx-custom --install=no -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +################################################################## +# Installing nginx from deb +################################################################## +ADD pre/ngninx.pre.tar.gz / +COPY --from=builder /builds/export /tmp/deb +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + geoip-database \ + geoip-bin \ + libgeoip1 \ + libmaxminddb0 \ + libgd3 \ + libxslt1.1 && \ + dpkg --force-all -i /tmp/deb/*.deb && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /usr/lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /usr/lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /usr/lib/libIP2Location.so.5 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /lib/libIP2Location.so.5 && \ + ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log && \ + ln -sf /etc/ssl/dhparam.pem /etc/nginx/dhparam.pem && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /var/cache/apt/archives/*.deb && \ + rm -rf /tmp/deb/* && \ + rm -rf /builds/* && \ + rm -rf /valve/* + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.17.10/main/Makefile b/linux/ecosystem/nginx/1.17.10/main/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.17.10/main/README.md b/linux/ecosystem/nginx/1.17.10/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/main/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/1.17.10/main/docker-compose.yml b/linux/ecosystem/nginx/1.17.10/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.17.10/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.17.10/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/ecosystem/nginx/1.17.10/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.17.10/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/ecosystem/nginx/1.17.10/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.17.10/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/main/pre/nginx-description-pak @@ -0,0 +1 @@ +Custom build of Nginx with some modules by EpicMorg. \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.17.10/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.17.10/main/pre/ngninx.pre.tar.gz new file mode 100644 index 000000000..bf9c27351 Binary files /dev/null and b/linux/ecosystem/nginx/1.17.10/main/pre/ngninx.pre.tar.gz differ diff --git a/linux/ecosystem/nginx/1.17.10/php/.env b/linux/ecosystem/nginx/1.17.10/php/.env new file mode 100644 index 000000000..0349cbaaf --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/php/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.17.10 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.17.10.tar.gz diff --git a/linux/ecosystem/nginx/1.17.10/php/Dockerfile b/linux/ecosystem/nginx/1.17.10/php/Dockerfile new file mode 100644 index 000000000..3b2664f17 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/php/Dockerfile @@ -0,0 +1,257 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 + +ARG P4API_VER=r20.1 +ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP7 +################################################################## +#installing php repo + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + smbclient libsmbclient libsmbclient-dev \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} + + +################################################################## +# compilling smbclient +################################################################## +RUN pecl install smbclient && \ + cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Installing php fpm for nginx from deb +################################################################## +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 +ARG PHP_VER=7.4 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini + +################################################################## +# Installing PHP7 +################################################################## +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi \ + php-pear \ + php7.4-gmp \ + php7.4-snmp \ + php7.4-ldap \ + php7.4-mail \ + php7.4-soap \ + php7.4-mysql \ + php7.4-memcached \ + php7.4-memcache \ + php7.4-igbinary \ + php7.4-interbase \ + php7.4-curl \ + php7.4-gd \ + php7.4-intl \ + php7.4-zip \ + php7.4-bcmath \ + php7.4-imap \ + php7.4-pspell \ + php7.4-sqlite3 \ + php7.4-tidy \ + php7.4-xmlrpc \ + php7.4-xml \ + php7.4-mbstring \ + php7.4-apcu \ + php7.4-common \ + php7.4-json \ + php7.4-readline \ + php7.4-enchant \ + php7.4-ssh2 \ + php7.4-oauth \ + php7.4-gmagick \ + php7.4-gnupg \ + php7.4-redis \ + smbclient libsmbclient \ +# php-smbclient \ + php7.4-yaml \ + php7.4-geoip \ + sendmail && \ + update-alternatives --set php /usr/bin/php7.4 && \ + phpenmod \ + snmp \ + gmp \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + gnupg \ + iconv \ + imap \ + json \ + mbstring \ + memcached \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} +RUN echo "extension=smbclient.so" > ${SMB_PHP_INI} && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ + php -m && \ + php -v + + + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.17.10/php/Makefile b/linux/ecosystem/nginx/1.17.10/php/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/php/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.17.10/php/README.md b/linux/ecosystem/nginx/1.17.10/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/php/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/1.17.10/php/docker-compose.yml b/linux/ecosystem/nginx/1.17.10/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/php/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-php" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/.env b/linux/ecosystem/nginx/1.17.10/rtmp-hls/.env new file mode 100644 index 000000000..0349cbaaf --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.17.10 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.17.10.tar.gz diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.17.10/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/Dockerfile @@ -0,0 +1,127 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG NGINX_RTMP_MODULE_VERSION=1.2.1 + +################################################################## +# Clear sources.list.d +################################################################## +RUN rm -rfv /etc/apt/sources.list.d/* + +################################################################## +# sid sources list +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN apt update + +################################################################## +# installing utils +################################################################## +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libpcre3-dev \ + librtmp1 \ + libtheora0 \ + libvorbis-dev \ + libmp3lame0 \ + libx264-dev \ + libx265-dev + + +################################################################## +# stretch sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.stretch.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx4 + + +################################################################## +# buster sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.buster.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx5 + + +################################################################## +# sid sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx6 + + +################################################################## +# installing deps for rtmp module +################################################################## +RUN mkdir -p /usr/share/nginx/html \ + /mnt/hls \ + /mnt/dash \ + /tmp/build && \ + chown -R www-data:www-data /mnt/hls && \ + chown -R www-data:www-data /mnt/dash && \ + chmod -R 755 /mnt/hls && \ + chmod -R 755 /mnt/dash && \ + cd /tmp/build && \ + wget https://github.com/arut/nginx-rtmp-module/archive/v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + tar -zxf v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + rm v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + cp /tmp/build/nginx-rtmp-module-${NGINX_RTMP_MODULE_VERSION}/stat.xsl /usr/share/nginx/html/stat.xsl && \ + rm -rf /tmp/build + + +################################################################## +# Forward logs to Docker +################################################################## +RUN ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log + + +################################################################## +# Copy nginx config file to container +################################################################## +RUN rm -rfv /etc/nginx/nginx.conf \ + /etc/nginx/sites-avalible/default +COPY conf/nginx.conf /etc/nginx/nginx.conf + + +################################################################## +# Copy html players to container +################################################################## +COPY players /usr/share/nginx/html/players + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + + +EXPOSE 1935 +EXPOSE 8080 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.17.10/rtmp-hls/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/README.md b/linux/ecosystem/nginx/1.17.10/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/README.md @@ -0,0 +1,78 @@ +# RTMP-HLS Docker + +**BASED ON** [TareqAlqutami/rtmp-hls-server](https://github.com/TareqAlqutami/rtmp-hls-server) + +**Docker image for video streaming server that supports RTMP, HLS, and DASH streams.** + +## Description + +This Docker image can be used to create a video streaming server that supports [**RTMP**](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol), [**HLS**](https://en.wikipedia.org/wiki/HTTP_Live_Streaming), [**DASH**](https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP) out of the box. +It also allows adaptive streaming and custom transcoding of video streams. +All modules are built from source on Debian and Alpine Linux base images. + +## Features + * The backend is [**Nginx**](http://nginx.org/en/) with [**nginx-rtmp-module**](https://github.com/arut/nginx-rtmp-module). + * [**FFmpeg**](https://www.ffmpeg.org/) for transcoding and adaptive streaming. + * Default settings: + * RTMP is ON + * HLS is ON (adaptive, 5 variants) + * DASH is ON + * Other Nginx configuration files are also provided to allow for RTMP-only streams or no-FFmpeg transcoding. + * Statistic page of RTMP streams at `http://:/stats`. + * Available web video players (based on [video.js](https://videojs.com/) and [hls.js](https://github.com/video-dev/hls.js/)) at `/usr/share/nginx/html/players`. + +## Usage + +### To run the server +``` +docker run -d -p 1935:1935 -p 8080:8080 epicmorg/balancer:rtmp-hls +``` + +To run with custom conf file: +``` +docker run -d -p 1935:1935 -p 8080:8080 -v custom.conf:/etc/nginx/nginx.conf epicmorg/balancer:rtmp-hls +``` +where `custom.conf` is the new conf file for Nginx. + +### To stream to the server + * **Stream live RTMP content to:** + ``` + rtmp://:1935/live/ + ``` + where `` is any stream key you specify. + + * **Configure [OBS](https://obsproject.com/) to stream content:**
+Go to Settings > Stream, choose the following settings: + * Service: Custom Streaming Server. + * Server: `rtmp://:1935/live`. + * Stream key: anything you want, however provided video players assume stream key is `test` + +### To view the stream + * **Using [VLC](https://www.videolan.org/vlc/index.html):** + * Go to Media > Open Network Stream. + * Enter the streaming URL: `rtmp://:1935/live/` + Replace `` with the IP of where the server is running, and + `` with the stream key you used when setting up the stream. + * For HLS and DASH, the URLs are of the forms: + `http://:8080/hls/.m3u8` and + `http://:8080/dash/_src.mpd` respectively. + * Click Play. + +* **Using provided web players:**
+The provided demo players assume the stream-key is called `test` and the player is opened in localhost. + * To play RTMP content (requires Flash): `http://localhost:8080/players/rtmp.html` + * To play HLS content: `http://localhost:8080/players/hls.html` + * To play HLS content using hls.js library: `http://localhost:8080/players/hls_hlsjs.html` + * To play DASH content: `http://localhost:8080/players/dash.html` + * To play RTMP and HLS contents on the same page: `http://localhost:8080/players/rtmp_hls.html` + + **Notes:** + + * These web players are hardcoded to play stream key "test" at localhost. + * To change the stream source for these players. Download the html files and modify the `src` attribute in the video tag in the html file. You can then mount the modified files to the container as follows: + ``` + docker run -d -p 1935:1935 -p 8080:8080 -v custom_players:/usr/share/nginx/html/players epicmorg/balancer:rtmp-hls + ``` + where `custom_players` is the directory holding the modified html files. + + diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.17.10/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/conf/nginx.conf @@ -0,0 +1,134 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + + # for each received stream, transcode for adaptive streaming + # This single ffmpeg command takes the input and transforms + # the source into 4 different streams with different bitrates + # and qualities. # these settings respect the aspect ratio. + exec_push /usr/bin/ffmpeg -i rtmp://localhost:1935/$app/$name -async 1 -vsync -1 + -c:v libx264 -c:a aac -b:v 256k -b:a 64k -vf "scale=480:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_low + -c:v libx264 -c:a aac -b:v 768k -b:a 128k -vf "scale=720:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_mid + -c:v libx264 -c:a aac -b:v 1024k -b:a 128k -vf "scale=960:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_high + -c:v libx264 -c:a aac -b:v 1920k -b:a 128k -vf "scale=1280:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_hd720 + -c copy -f flv rtmp://localhost:1935/show/$name_src; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 20; + hls_path /mnt/hls/; # hls fragments path + # Instruct clients to adjust resolution according to bandwidth + hls_variant _src BANDWIDTH=4096000; # Source bitrate, source resolution + hls_variant _hd720 BANDWIDTH=2048000; # High bitrate, HD 720p resolution + hls_variant _high BANDWIDTH=1152000; # High bitrate, higher-than-SD resolution + hls_variant _mid BANDWIDTH=448000; # Medium bitrate, SD resolution + hls_variant _low BANDWIDTH=288000; # Low bitrate, sub-SD resolution + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 20; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/ecosystem/nginx/1.17.10/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/conf/nginx_no-ffmpeg.conf @@ -0,0 +1,118 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + push rtmp://localhost:1935/show; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 10; + hls_path /mnt/hls/; # hls fragments path + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 10; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/ecosystem/nginx/1.17.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf @@ -0,0 +1,16 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +rtmp_auto_push on; +events {} +rtmp { + server { + listen 1935; + listen [::]:1935; + + application live { + live on; + record off; + } + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.17.10/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-rtmp-hls" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/hls.html new file mode 100644 index 000000000..15d95b4c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/hls.html @@ -0,0 +1,23 @@ + + + + + HLS Live Streaming + + + + +

HLS Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/hls_hlsjs.html new file mode 100644 index 000000000..0237e7a52 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/hls_hlsjs.html @@ -0,0 +1,41 @@ + + + + + HLS streaming + + + + + + + + + + +

HLS Player (using hls.js)

+ +
+
+ +
+
+ + + + + + + diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/rtmp.html new file mode 100644 index 000000000..d8ce85610 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/rtmp.html @@ -0,0 +1,24 @@ + + + + + RTMP Live Streaming + Live Streaming + + + + + + + +

RTMP Player

+ + + + + diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/rtmp_hls.html new file mode 100644 index 000000000..35617e913 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/rtmp_hls.html @@ -0,0 +1,30 @@ + + + + + Live Streaming + + + + + + + + +

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/sources.list.d/sources.buster.list b/linux/ecosystem/nginx/1.17.10/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ buster main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster main contrib non-free +deb http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb http://httpredir.debian.org/debian-multimedia/ buster-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/sources.list.d/sources.sid.list b/linux/ecosystem/nginx/1.17.10/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..465c737af --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ sid main contrib non-free +deb-src http://httpredir.debian.org/debian/ sid main contrib non-free +deb http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free + +#backports +#deb http://httpredir.debian.org/debian/ testing-backports main contrib non-free +#deb-src http://httpredir.debian.org/debian/ testing-backports main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ testing-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ testing-security main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ sid main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/nginx/1.17.10/rtmp-hls/sources.list.d/sources.stretch.list b/linux/ecosystem/nginx/1.17.10/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..617bf9bb6 --- /dev/null +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ stretch main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb http://httpredir.debian.org/debian-multimedia/ stretch-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch-backports main diff --git a/linux/ecosystem/nginx/1.18.0/main/.env b/linux/ecosystem/nginx/1.18.0/main/.env new file mode 100644 index 000000000..841a1e5c4 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.18.0 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.18.0.tar.gz diff --git a/linux/ecosystem/nginx/1.18.0/main/Dockerfile b/linux/ecosystem/nginx/1.18.0/main/Dockerfile new file mode 100644 index 000000000..907a090fe --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/main/Dockerfile @@ -0,0 +1,245 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG PRE_DIR=${BUILDS_DIR}/pre +ARG NGINX_SRC_DIR=${SRC_DIR}/nginx +ARG NGINX_VERSION +ARG NGINX_DOWNLOAD_URL +ARG LUAJIT_INC=/usr/local/include/luajit-2.1 +ARG LUAJIT_LIB=/usr/local/lib + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${PRE_DIR} ${NGINX_SRC_DIR} /usr/lib/nginx +ADD pre/luajit2-description-pak ${PRE_DIR} +ADD pre/nginx-description-pak ${PRE_DIR} +ADD pre/ip2location-description-pak ${PRE_DIR} + +################################################################## +# IP2Location support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2 && \ + cp -fv ${PRE_DIR}/ip2location-description-pak ${SRC_DIR}/ip2/description-pak && \ + cd ${SRC_DIR}/ip2 && \ + ls -las && \ + autoreconf -i -v --force && \ + aclocal && \ + automake --gnu --add-missing && \ + autoconf && \ + autoreconf -i -v --force && \ + ./configure && \ + ls -las && \ + make clean && \ + make && \ + make -C data convert && \ + make check && \ + ls -las && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=ip2-custom --conflicts=ip2 --install=yes -y && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + dpkg --force-all -i ${EXPORT_DIR}/*.deb + +################################################################## +# luaJIT 2 support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/openresty/luajit2.git luajit2 && \ + cp -fv ${PRE_DIR}/luajit2-description-pak ${SRC_DIR}/luajit2/description-pak && \ + cd ${SRC_DIR}/luajit2 && \ + make && \ + make install && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=luajit2-custom --conflicts=luajit2 --install=no -y + +################################################################## +# nginx preparing +################################################################## +RUN wget -qO - ${NGINX_DOWNLOAD_URL} | tar -zxv --strip-components=1 -C ${NGINX_SRC_DIR} && \ + cd ${NGINX_SRC_DIR} && \ + git clone https://github.com/openresty/headers-more-nginx-module.git http-headers-more-filter && \ + git clone https://github.com/sto/ngx_http_auth_pam_module.git http-auth-pam && \ + git clone https://github.com/arut/nginx-dav-ext-module.git http-dav-ext && \ + git clone https://github.com/openresty/echo-nginx-module.git http-echo && \ + git clone https://github.com/aperezdc/ngx-fancyindex.git http-fancyindex && \ + git clone https://github.com/slact/nchan.git nchan && \ + git clone https://github.com/masterzen/nginx-upload-progress-module.git http-uploadprogress && \ + git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module http-subs-filter && \ + git clone https://github.com/grahamedgecombe/nginx-ct.git ssl-ct && \ + git clone https://github.com/stnoonan/spnego-http-auth-nginx-module.git spnego-http-auth-nginx-module && \ + git clone https://github.com/leev/ngx_http_geoip2_module http-geoip2 && \ + git clone https://github.com/flavioribeiro/nginx-audio-track-for-hls-module.git nginx-audio-track-for-hls-module && \ + git clone https://github.com/chrislim2888/ip2location-nginx.git ip2location-nginx && \ + git clone https://github.com/kaltura/nginx-vod-module.git nginx-vod-module && \ + git clone https://github.com/vozlt/nginx-module-vts.git nginx-module-vts && \ + git clone https://github.com/evanmiller/mod_zip.git mod-zip && \ + git clone https://github.com/alibaba/nginx-http-user-agent.git nginx-http-user-agent && \ + git clone https://github.com/youzee/nginx-unzip-module.git nginx-unzip-module && \ + git clone https://github.com/vladbondarenko/ngx_webp.git ngx-webp && \ + git clone https://github.com/openresty/xss-nginx-module.git xss-nginx-module && \ + git clone https://github.com/openresty/set-misc-nginx-module.git set-misc-nginx-module && \ + git clone https://github.com/arut/nginx-rtmp-module.git rtmp && \ + git clone https://github.com/kvspb/nginx-auth-ldap.git http-auth-ldap && \ + git clone https://github.com/simplresty/ngx_devel_kit.git http-ndk && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2location-c-7.0.0 && \ + git clone https://github.com/itoffshore/nginx-upstream-fair.git http-upstream-fair && \ + git clone https://github.com/yaoweibin/nginx_upstream_check_module.git nginx-upstream-check-module && \ + git clone https://github.com/openresty/lua-nginx-module http-lua + +################################################################## +# nginx compilling +################################################################## +RUN cd ${NGINX_SRC_DIR} && \ + ./configure \ + --sbin-path=/usr/sbin/nginx \ + --prefix=/usr/share/nginx \ + --conf-path=/etc/nginx/nginx.conf \ + --http-log-path=/var/log/nginx/access.log \ + --error-log-path=/var/log/nginx/error.log \ + --lock-path=/var/lock/nginx.lock \ + --pid-path=/run/nginx.pid \ + --modules-path=/usr/lib/nginx/modules \ + --http-client-body-temp-path=/var/lib/nginx/body \ + --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ + --http-proxy-temp-path=/var/lib/nginx/proxy \ + --http-scgi-temp-path=/var/lib/nginx/scgi \ + --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ + --with-cc-opt='-I/usr/local/include/luajit-2.1 -g -O2 -lz -fstack-protector-strong -Wformat -Wno-error=date-time -Wno-error=implicit-fallthrough= -Wno-error=cast-function-type -Wno-error=format-security -Wno-error=implicit-function-declaration -Wno-error=deprecated-declarations -Wno-error=unused-result -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' \ + --with-ld-opt='-Wl,-z,relro -Wl,-z,now -lz -fPIC -L/usr/local/lib' \ + --with-file-aio \ + --with-compat \ + --with-debug \ + --with-threads \ + --with-pcre-jit \ + --with-http_ssl_module \ + --with-http_stub_status_module \ + --with-http_realip_module \ + --with-http_auth_request_module \ + --with-http_v2_module \ + --with-http_dav_module \ + --with-http_slice_module \ + --with-http_addition_module \ + --with-http_flv_module \ + --with-http_geoip_module=dynamic \ + --with-http_gunzip_module \ + --with-http_gzip_static_module \ + --with-http_image_filter_module=dynamic \ + --with-http_mp4_module \ + --with-http_perl_module=dynamic \ + --with-http_random_index_module \ + --with-http_secure_link_module \ + --with-http_sub_module \ + --with-http_xslt_module=dynamic \ + --with-mail=dynamic \ + --with-mail_ssl_module \ + --with-stream=dynamic \ + --with-stream_ssl_module \ + --with-stream_ssl_preread_module \ + --add-dynamic-module=http-headers-more-filter \ + --add-dynamic-module=http-auth-pam \ + --add-dynamic-module=http-dav-ext \ + --add-dynamic-module=http-ndk \ + --add-dynamic-module=http-echo \ + --add-dynamic-module=http-fancyindex \ + --add-dynamic-module=nchan \ + --add-dynamic-module=http-uploadprogress \ + --add-dynamic-module=http-subs-filter \ + --add-dynamic-module=ssl-ct \ + --add-dynamic-module=http-geoip2 \ + --add-dynamic-module=spnego-http-auth-nginx-module \ + --add-dynamic-module=http-auth-ldap \ +# --add-dynamic-module=nginx-audio-track-for-hls-module \ + --add-dynamic-module=ip2location-nginx \ + --add-dynamic-module=nginx-vod-module \ +# --add-dynamic-module=nginx-module-vts \ + --add-dynamic-module=mod-zip \ + --add-dynamic-module=nginx-http-user-agent \ + --add-dynamic-module=nginx-unzip-module \ + --add-dynamic-module=ngx-webp \ + --add-dynamic-module=set-misc-nginx-module \ + --add-dynamic-module=rtmp \ + --add-dynamic-module=http-upstream-fair \ + --add-dynamic-module=nginx-upstream-check-module \ + --add-dynamic-module=http-lua && \ + cp -fv ${PRE_DIR}/nginx-description-pak ${NGINX_SRC_DIR}/description-pak && \ + fakeroot checkinstall -D --pakdir=/builds/export --maintainer="EpicMorg, developer@epicm.org" --pkgname=nginx-custom --install=no -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +################################################################## +# Installing nginx from deb +################################################################## +ADD pre/ngninx.pre.tar.gz / +COPY --from=builder /builds/export /tmp/deb +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + geoip-database \ + geoip-bin \ + libgeoip1 \ + libmaxminddb0 \ + libgd3 \ + libxslt1.1 && \ + dpkg --force-all -i /tmp/deb/*.deb && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /usr/lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /usr/lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /usr/lib/libIP2Location.so.5 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /lib/libIP2Location.so.5 && \ + ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log && \ + ln -sf /etc/ssl/dhparam.pem /etc/nginx/dhparam.pem && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /var/cache/apt/archives/*.deb && \ + rm -rf /tmp/deb/* && \ + rm -rf /builds/* && \ + rm -rf /valve/* + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.18.0/main/Makefile b/linux/ecosystem/nginx/1.18.0/main/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.18.0/main/README.md b/linux/ecosystem/nginx/1.18.0/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/main/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/1.18.0/main/docker-compose.yml b/linux/ecosystem/nginx/1.18.0/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.18.0/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.18.0/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/ecosystem/nginx/1.18.0/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.18.0/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/ecosystem/nginx/1.18.0/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.18.0/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/main/pre/nginx-description-pak @@ -0,0 +1 @@ +Custom build of Nginx with some modules by EpicMorg. \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.18.0/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.18.0/main/pre/ngninx.pre.tar.gz new file mode 100644 index 000000000..bf9c27351 Binary files /dev/null and b/linux/ecosystem/nginx/1.18.0/main/pre/ngninx.pre.tar.gz differ diff --git a/linux/ecosystem/nginx/1.18.0/php/.env b/linux/ecosystem/nginx/1.18.0/php/.env new file mode 100644 index 000000000..841a1e5c4 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/php/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.18.0 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.18.0.tar.gz diff --git a/linux/ecosystem/nginx/1.18.0/php/Dockerfile b/linux/ecosystem/nginx/1.18.0/php/Dockerfile new file mode 100644 index 000000000..3b2664f17 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/php/Dockerfile @@ -0,0 +1,257 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 + +ARG P4API_VER=r20.1 +ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP7 +################################################################## +#installing php repo + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + smbclient libsmbclient libsmbclient-dev \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} + + +################################################################## +# compilling smbclient +################################################################## +RUN pecl install smbclient && \ + cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Installing php fpm for nginx from deb +################################################################## +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 +ARG PHP_VER=7.4 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini + +################################################################## +# Installing PHP7 +################################################################## +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi \ + php-pear \ + php7.4-gmp \ + php7.4-snmp \ + php7.4-ldap \ + php7.4-mail \ + php7.4-soap \ + php7.4-mysql \ + php7.4-memcached \ + php7.4-memcache \ + php7.4-igbinary \ + php7.4-interbase \ + php7.4-curl \ + php7.4-gd \ + php7.4-intl \ + php7.4-zip \ + php7.4-bcmath \ + php7.4-imap \ + php7.4-pspell \ + php7.4-sqlite3 \ + php7.4-tidy \ + php7.4-xmlrpc \ + php7.4-xml \ + php7.4-mbstring \ + php7.4-apcu \ + php7.4-common \ + php7.4-json \ + php7.4-readline \ + php7.4-enchant \ + php7.4-ssh2 \ + php7.4-oauth \ + php7.4-gmagick \ + php7.4-gnupg \ + php7.4-redis \ + smbclient libsmbclient \ +# php-smbclient \ + php7.4-yaml \ + php7.4-geoip \ + sendmail && \ + update-alternatives --set php /usr/bin/php7.4 && \ + phpenmod \ + snmp \ + gmp \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + gnupg \ + iconv \ + imap \ + json \ + mbstring \ + memcached \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} +RUN echo "extension=smbclient.so" > ${SMB_PHP_INI} && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ + php -m && \ + php -v + + + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.18.0/php/Makefile b/linux/ecosystem/nginx/1.18.0/php/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/php/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.18.0/php/README.md b/linux/ecosystem/nginx/1.18.0/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/php/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/1.18.0/php/docker-compose.yml b/linux/ecosystem/nginx/1.18.0/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/php/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-php" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/.env b/linux/ecosystem/nginx/1.18.0/rtmp-hls/.env new file mode 100644 index 000000000..841a1e5c4 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.18.0 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.18.0.tar.gz diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.18.0/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/Dockerfile @@ -0,0 +1,127 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG NGINX_RTMP_MODULE_VERSION=1.2.1 + +################################################################## +# Clear sources.list.d +################################################################## +RUN rm -rfv /etc/apt/sources.list.d/* + +################################################################## +# sid sources list +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN apt update + +################################################################## +# installing utils +################################################################## +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libpcre3-dev \ + librtmp1 \ + libtheora0 \ + libvorbis-dev \ + libmp3lame0 \ + libx264-dev \ + libx265-dev + + +################################################################## +# stretch sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.stretch.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx4 + + +################################################################## +# buster sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.buster.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx5 + + +################################################################## +# sid sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx6 + + +################################################################## +# installing deps for rtmp module +################################################################## +RUN mkdir -p /usr/share/nginx/html \ + /mnt/hls \ + /mnt/dash \ + /tmp/build && \ + chown -R www-data:www-data /mnt/hls && \ + chown -R www-data:www-data /mnt/dash && \ + chmod -R 755 /mnt/hls && \ + chmod -R 755 /mnt/dash && \ + cd /tmp/build && \ + wget https://github.com/arut/nginx-rtmp-module/archive/v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + tar -zxf v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + rm v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + cp /tmp/build/nginx-rtmp-module-${NGINX_RTMP_MODULE_VERSION}/stat.xsl /usr/share/nginx/html/stat.xsl && \ + rm -rf /tmp/build + + +################################################################## +# Forward logs to Docker +################################################################## +RUN ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log + + +################################################################## +# Copy nginx config file to container +################################################################## +RUN rm -rfv /etc/nginx/nginx.conf \ + /etc/nginx/sites-avalible/default +COPY conf/nginx.conf /etc/nginx/nginx.conf + + +################################################################## +# Copy html players to container +################################################################## +COPY players /usr/share/nginx/html/players + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + + +EXPOSE 1935 +EXPOSE 8080 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.18.0/rtmp-hls/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/README.md b/linux/ecosystem/nginx/1.18.0/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/README.md @@ -0,0 +1,78 @@ +# RTMP-HLS Docker + +**BASED ON** [TareqAlqutami/rtmp-hls-server](https://github.com/TareqAlqutami/rtmp-hls-server) + +**Docker image for video streaming server that supports RTMP, HLS, and DASH streams.** + +## Description + +This Docker image can be used to create a video streaming server that supports [**RTMP**](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol), [**HLS**](https://en.wikipedia.org/wiki/HTTP_Live_Streaming), [**DASH**](https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP) out of the box. +It also allows adaptive streaming and custom transcoding of video streams. +All modules are built from source on Debian and Alpine Linux base images. + +## Features + * The backend is [**Nginx**](http://nginx.org/en/) with [**nginx-rtmp-module**](https://github.com/arut/nginx-rtmp-module). + * [**FFmpeg**](https://www.ffmpeg.org/) for transcoding and adaptive streaming. + * Default settings: + * RTMP is ON + * HLS is ON (adaptive, 5 variants) + * DASH is ON + * Other Nginx configuration files are also provided to allow for RTMP-only streams or no-FFmpeg transcoding. + * Statistic page of RTMP streams at `http://:/stats`. + * Available web video players (based on [video.js](https://videojs.com/) and [hls.js](https://github.com/video-dev/hls.js/)) at `/usr/share/nginx/html/players`. + +## Usage + +### To run the server +``` +docker run -d -p 1935:1935 -p 8080:8080 epicmorg/balancer:rtmp-hls +``` + +To run with custom conf file: +``` +docker run -d -p 1935:1935 -p 8080:8080 -v custom.conf:/etc/nginx/nginx.conf epicmorg/balancer:rtmp-hls +``` +where `custom.conf` is the new conf file for Nginx. + +### To stream to the server + * **Stream live RTMP content to:** + ``` + rtmp://:1935/live/ + ``` + where `` is any stream key you specify. + + * **Configure [OBS](https://obsproject.com/) to stream content:**
+Go to Settings > Stream, choose the following settings: + * Service: Custom Streaming Server. + * Server: `rtmp://:1935/live`. + * Stream key: anything you want, however provided video players assume stream key is `test` + +### To view the stream + * **Using [VLC](https://www.videolan.org/vlc/index.html):** + * Go to Media > Open Network Stream. + * Enter the streaming URL: `rtmp://:1935/live/` + Replace `` with the IP of where the server is running, and + `` with the stream key you used when setting up the stream. + * For HLS and DASH, the URLs are of the forms: + `http://:8080/hls/.m3u8` and + `http://:8080/dash/_src.mpd` respectively. + * Click Play. + +* **Using provided web players:**
+The provided demo players assume the stream-key is called `test` and the player is opened in localhost. + * To play RTMP content (requires Flash): `http://localhost:8080/players/rtmp.html` + * To play HLS content: `http://localhost:8080/players/hls.html` + * To play HLS content using hls.js library: `http://localhost:8080/players/hls_hlsjs.html` + * To play DASH content: `http://localhost:8080/players/dash.html` + * To play RTMP and HLS contents on the same page: `http://localhost:8080/players/rtmp_hls.html` + + **Notes:** + + * These web players are hardcoded to play stream key "test" at localhost. + * To change the stream source for these players. Download the html files and modify the `src` attribute in the video tag in the html file. You can then mount the modified files to the container as follows: + ``` + docker run -d -p 1935:1935 -p 8080:8080 -v custom_players:/usr/share/nginx/html/players epicmorg/balancer:rtmp-hls + ``` + where `custom_players` is the directory holding the modified html files. + + diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.18.0/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/conf/nginx.conf @@ -0,0 +1,134 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + + # for each received stream, transcode for adaptive streaming + # This single ffmpeg command takes the input and transforms + # the source into 4 different streams with different bitrates + # and qualities. # these settings respect the aspect ratio. + exec_push /usr/bin/ffmpeg -i rtmp://localhost:1935/$app/$name -async 1 -vsync -1 + -c:v libx264 -c:a aac -b:v 256k -b:a 64k -vf "scale=480:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_low + -c:v libx264 -c:a aac -b:v 768k -b:a 128k -vf "scale=720:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_mid + -c:v libx264 -c:a aac -b:v 1024k -b:a 128k -vf "scale=960:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_high + -c:v libx264 -c:a aac -b:v 1920k -b:a 128k -vf "scale=1280:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_hd720 + -c copy -f flv rtmp://localhost:1935/show/$name_src; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 20; + hls_path /mnt/hls/; # hls fragments path + # Instruct clients to adjust resolution according to bandwidth + hls_variant _src BANDWIDTH=4096000; # Source bitrate, source resolution + hls_variant _hd720 BANDWIDTH=2048000; # High bitrate, HD 720p resolution + hls_variant _high BANDWIDTH=1152000; # High bitrate, higher-than-SD resolution + hls_variant _mid BANDWIDTH=448000; # Medium bitrate, SD resolution + hls_variant _low BANDWIDTH=288000; # Low bitrate, sub-SD resolution + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 20; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/ecosystem/nginx/1.18.0/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/conf/nginx_no-ffmpeg.conf @@ -0,0 +1,118 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + push rtmp://localhost:1935/show; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 10; + hls_path /mnt/hls/; # hls fragments path + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 10; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/ecosystem/nginx/1.18.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf @@ -0,0 +1,16 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +rtmp_auto_push on; +events {} +rtmp { + server { + listen 1935; + listen [::]:1935; + + application live { + live on; + record off; + } + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.18.0/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-rtmp-hls" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/hls.html new file mode 100644 index 000000000..15d95b4c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/hls.html @@ -0,0 +1,23 @@ + + + + + HLS Live Streaming + + + + +

HLS Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/hls_hlsjs.html new file mode 100644 index 000000000..0237e7a52 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/hls_hlsjs.html @@ -0,0 +1,41 @@ + + + + + HLS streaming + + + + + + + + + + +

HLS Player (using hls.js)

+ +
+
+ +
+
+ + + + + + + diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/rtmp.html new file mode 100644 index 000000000..d8ce85610 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/rtmp.html @@ -0,0 +1,24 @@ + + + + + RTMP Live Streaming + Live Streaming + + + + + + + +

RTMP Player

+ + + + + diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/rtmp_hls.html new file mode 100644 index 000000000..35617e913 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/rtmp_hls.html @@ -0,0 +1,30 @@ + + + + + Live Streaming + + + + + + + + +

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/sources.list.d/sources.buster.list b/linux/ecosystem/nginx/1.18.0/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ buster main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster main contrib non-free +deb http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb http://httpredir.debian.org/debian-multimedia/ buster-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/sources.list.d/sources.sid.list b/linux/ecosystem/nginx/1.18.0/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..465c737af --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ sid main contrib non-free +deb-src http://httpredir.debian.org/debian/ sid main contrib non-free +deb http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free + +#backports +#deb http://httpredir.debian.org/debian/ testing-backports main contrib non-free +#deb-src http://httpredir.debian.org/debian/ testing-backports main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ testing-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ testing-security main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ sid main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/nginx/1.18.0/rtmp-hls/sources.list.d/sources.stretch.list b/linux/ecosystem/nginx/1.18.0/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..617bf9bb6 --- /dev/null +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ stretch main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb http://httpredir.debian.org/debian-multimedia/ stretch-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch-backports main diff --git a/linux/ecosystem/nginx/1.19.10/main/.env b/linux/ecosystem/nginx/1.19.10/main/.env new file mode 100644 index 000000000..25655a5b6 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.19.10 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.19.10.tar.gz diff --git a/linux/ecosystem/nginx/1.19.10/main/Dockerfile b/linux/ecosystem/nginx/1.19.10/main/Dockerfile new file mode 100644 index 000000000..907a090fe --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/main/Dockerfile @@ -0,0 +1,245 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG PRE_DIR=${BUILDS_DIR}/pre +ARG NGINX_SRC_DIR=${SRC_DIR}/nginx +ARG NGINX_VERSION +ARG NGINX_DOWNLOAD_URL +ARG LUAJIT_INC=/usr/local/include/luajit-2.1 +ARG LUAJIT_LIB=/usr/local/lib + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${PRE_DIR} ${NGINX_SRC_DIR} /usr/lib/nginx +ADD pre/luajit2-description-pak ${PRE_DIR} +ADD pre/nginx-description-pak ${PRE_DIR} +ADD pre/ip2location-description-pak ${PRE_DIR} + +################################################################## +# IP2Location support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2 && \ + cp -fv ${PRE_DIR}/ip2location-description-pak ${SRC_DIR}/ip2/description-pak && \ + cd ${SRC_DIR}/ip2 && \ + ls -las && \ + autoreconf -i -v --force && \ + aclocal && \ + automake --gnu --add-missing && \ + autoconf && \ + autoreconf -i -v --force && \ + ./configure && \ + ls -las && \ + make clean && \ + make && \ + make -C data convert && \ + make check && \ + ls -las && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=ip2-custom --conflicts=ip2 --install=yes -y && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + dpkg --force-all -i ${EXPORT_DIR}/*.deb + +################################################################## +# luaJIT 2 support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/openresty/luajit2.git luajit2 && \ + cp -fv ${PRE_DIR}/luajit2-description-pak ${SRC_DIR}/luajit2/description-pak && \ + cd ${SRC_DIR}/luajit2 && \ + make && \ + make install && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=luajit2-custom --conflicts=luajit2 --install=no -y + +################################################################## +# nginx preparing +################################################################## +RUN wget -qO - ${NGINX_DOWNLOAD_URL} | tar -zxv --strip-components=1 -C ${NGINX_SRC_DIR} && \ + cd ${NGINX_SRC_DIR} && \ + git clone https://github.com/openresty/headers-more-nginx-module.git http-headers-more-filter && \ + git clone https://github.com/sto/ngx_http_auth_pam_module.git http-auth-pam && \ + git clone https://github.com/arut/nginx-dav-ext-module.git http-dav-ext && \ + git clone https://github.com/openresty/echo-nginx-module.git http-echo && \ + git clone https://github.com/aperezdc/ngx-fancyindex.git http-fancyindex && \ + git clone https://github.com/slact/nchan.git nchan && \ + git clone https://github.com/masterzen/nginx-upload-progress-module.git http-uploadprogress && \ + git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module http-subs-filter && \ + git clone https://github.com/grahamedgecombe/nginx-ct.git ssl-ct && \ + git clone https://github.com/stnoonan/spnego-http-auth-nginx-module.git spnego-http-auth-nginx-module && \ + git clone https://github.com/leev/ngx_http_geoip2_module http-geoip2 && \ + git clone https://github.com/flavioribeiro/nginx-audio-track-for-hls-module.git nginx-audio-track-for-hls-module && \ + git clone https://github.com/chrislim2888/ip2location-nginx.git ip2location-nginx && \ + git clone https://github.com/kaltura/nginx-vod-module.git nginx-vod-module && \ + git clone https://github.com/vozlt/nginx-module-vts.git nginx-module-vts && \ + git clone https://github.com/evanmiller/mod_zip.git mod-zip && \ + git clone https://github.com/alibaba/nginx-http-user-agent.git nginx-http-user-agent && \ + git clone https://github.com/youzee/nginx-unzip-module.git nginx-unzip-module && \ + git clone https://github.com/vladbondarenko/ngx_webp.git ngx-webp && \ + git clone https://github.com/openresty/xss-nginx-module.git xss-nginx-module && \ + git clone https://github.com/openresty/set-misc-nginx-module.git set-misc-nginx-module && \ + git clone https://github.com/arut/nginx-rtmp-module.git rtmp && \ + git clone https://github.com/kvspb/nginx-auth-ldap.git http-auth-ldap && \ + git clone https://github.com/simplresty/ngx_devel_kit.git http-ndk && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2location-c-7.0.0 && \ + git clone https://github.com/itoffshore/nginx-upstream-fair.git http-upstream-fair && \ + git clone https://github.com/yaoweibin/nginx_upstream_check_module.git nginx-upstream-check-module && \ + git clone https://github.com/openresty/lua-nginx-module http-lua + +################################################################## +# nginx compilling +################################################################## +RUN cd ${NGINX_SRC_DIR} && \ + ./configure \ + --sbin-path=/usr/sbin/nginx \ + --prefix=/usr/share/nginx \ + --conf-path=/etc/nginx/nginx.conf \ + --http-log-path=/var/log/nginx/access.log \ + --error-log-path=/var/log/nginx/error.log \ + --lock-path=/var/lock/nginx.lock \ + --pid-path=/run/nginx.pid \ + --modules-path=/usr/lib/nginx/modules \ + --http-client-body-temp-path=/var/lib/nginx/body \ + --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ + --http-proxy-temp-path=/var/lib/nginx/proxy \ + --http-scgi-temp-path=/var/lib/nginx/scgi \ + --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ + --with-cc-opt='-I/usr/local/include/luajit-2.1 -g -O2 -lz -fstack-protector-strong -Wformat -Wno-error=date-time -Wno-error=implicit-fallthrough= -Wno-error=cast-function-type -Wno-error=format-security -Wno-error=implicit-function-declaration -Wno-error=deprecated-declarations -Wno-error=unused-result -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' \ + --with-ld-opt='-Wl,-z,relro -Wl,-z,now -lz -fPIC -L/usr/local/lib' \ + --with-file-aio \ + --with-compat \ + --with-debug \ + --with-threads \ + --with-pcre-jit \ + --with-http_ssl_module \ + --with-http_stub_status_module \ + --with-http_realip_module \ + --with-http_auth_request_module \ + --with-http_v2_module \ + --with-http_dav_module \ + --with-http_slice_module \ + --with-http_addition_module \ + --with-http_flv_module \ + --with-http_geoip_module=dynamic \ + --with-http_gunzip_module \ + --with-http_gzip_static_module \ + --with-http_image_filter_module=dynamic \ + --with-http_mp4_module \ + --with-http_perl_module=dynamic \ + --with-http_random_index_module \ + --with-http_secure_link_module \ + --with-http_sub_module \ + --with-http_xslt_module=dynamic \ + --with-mail=dynamic \ + --with-mail_ssl_module \ + --with-stream=dynamic \ + --with-stream_ssl_module \ + --with-stream_ssl_preread_module \ + --add-dynamic-module=http-headers-more-filter \ + --add-dynamic-module=http-auth-pam \ + --add-dynamic-module=http-dav-ext \ + --add-dynamic-module=http-ndk \ + --add-dynamic-module=http-echo \ + --add-dynamic-module=http-fancyindex \ + --add-dynamic-module=nchan \ + --add-dynamic-module=http-uploadprogress \ + --add-dynamic-module=http-subs-filter \ + --add-dynamic-module=ssl-ct \ + --add-dynamic-module=http-geoip2 \ + --add-dynamic-module=spnego-http-auth-nginx-module \ + --add-dynamic-module=http-auth-ldap \ +# --add-dynamic-module=nginx-audio-track-for-hls-module \ + --add-dynamic-module=ip2location-nginx \ + --add-dynamic-module=nginx-vod-module \ +# --add-dynamic-module=nginx-module-vts \ + --add-dynamic-module=mod-zip \ + --add-dynamic-module=nginx-http-user-agent \ + --add-dynamic-module=nginx-unzip-module \ + --add-dynamic-module=ngx-webp \ + --add-dynamic-module=set-misc-nginx-module \ + --add-dynamic-module=rtmp \ + --add-dynamic-module=http-upstream-fair \ + --add-dynamic-module=nginx-upstream-check-module \ + --add-dynamic-module=http-lua && \ + cp -fv ${PRE_DIR}/nginx-description-pak ${NGINX_SRC_DIR}/description-pak && \ + fakeroot checkinstall -D --pakdir=/builds/export --maintainer="EpicMorg, developer@epicm.org" --pkgname=nginx-custom --install=no -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +################################################################## +# Installing nginx from deb +################################################################## +ADD pre/ngninx.pre.tar.gz / +COPY --from=builder /builds/export /tmp/deb +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + geoip-database \ + geoip-bin \ + libgeoip1 \ + libmaxminddb0 \ + libgd3 \ + libxslt1.1 && \ + dpkg --force-all -i /tmp/deb/*.deb && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /usr/lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /usr/lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /usr/lib/libIP2Location.so.5 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /lib/libIP2Location.so.5 && \ + ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log && \ + ln -sf /etc/ssl/dhparam.pem /etc/nginx/dhparam.pem && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /var/cache/apt/archives/*.deb && \ + rm -rf /tmp/deb/* && \ + rm -rf /builds/* && \ + rm -rf /valve/* + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.19.10/main/Makefile b/linux/ecosystem/nginx/1.19.10/main/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.19.10/main/README.md b/linux/ecosystem/nginx/1.19.10/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/main/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/1.19.10/main/docker-compose.yml b/linux/ecosystem/nginx/1.19.10/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.19.10/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.19.10/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/ecosystem/nginx/1.19.10/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.19.10/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/ecosystem/nginx/1.19.10/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.19.10/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/main/pre/nginx-description-pak @@ -0,0 +1 @@ +Custom build of Nginx with some modules by EpicMorg. \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.19.10/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.19.10/main/pre/ngninx.pre.tar.gz new file mode 100644 index 000000000..bf9c27351 Binary files /dev/null and b/linux/ecosystem/nginx/1.19.10/main/pre/ngninx.pre.tar.gz differ diff --git a/linux/ecosystem/nginx/1.19.10/php/.env b/linux/ecosystem/nginx/1.19.10/php/.env new file mode 100644 index 000000000..25655a5b6 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/php/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.19.10 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.19.10.tar.gz diff --git a/linux/ecosystem/nginx/1.19.10/php/Dockerfile b/linux/ecosystem/nginx/1.19.10/php/Dockerfile new file mode 100644 index 000000000..3b2664f17 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/php/Dockerfile @@ -0,0 +1,257 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 + +ARG P4API_VER=r20.1 +ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP7 +################################################################## +#installing php repo + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + smbclient libsmbclient libsmbclient-dev \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} + + +################################################################## +# compilling smbclient +################################################################## +RUN pecl install smbclient && \ + cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Installing php fpm for nginx from deb +################################################################## +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 +ARG PHP_VER=7.4 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini + +################################################################## +# Installing PHP7 +################################################################## +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi \ + php-pear \ + php7.4-gmp \ + php7.4-snmp \ + php7.4-ldap \ + php7.4-mail \ + php7.4-soap \ + php7.4-mysql \ + php7.4-memcached \ + php7.4-memcache \ + php7.4-igbinary \ + php7.4-interbase \ + php7.4-curl \ + php7.4-gd \ + php7.4-intl \ + php7.4-zip \ + php7.4-bcmath \ + php7.4-imap \ + php7.4-pspell \ + php7.4-sqlite3 \ + php7.4-tidy \ + php7.4-xmlrpc \ + php7.4-xml \ + php7.4-mbstring \ + php7.4-apcu \ + php7.4-common \ + php7.4-json \ + php7.4-readline \ + php7.4-enchant \ + php7.4-ssh2 \ + php7.4-oauth \ + php7.4-gmagick \ + php7.4-gnupg \ + php7.4-redis \ + smbclient libsmbclient \ +# php-smbclient \ + php7.4-yaml \ + php7.4-geoip \ + sendmail && \ + update-alternatives --set php /usr/bin/php7.4 && \ + phpenmod \ + snmp \ + gmp \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + gnupg \ + iconv \ + imap \ + json \ + mbstring \ + memcached \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} +RUN echo "extension=smbclient.so" > ${SMB_PHP_INI} && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ + php -m && \ + php -v + + + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.19.10/php/Makefile b/linux/ecosystem/nginx/1.19.10/php/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/php/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.19.10/php/README.md b/linux/ecosystem/nginx/1.19.10/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/php/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/1.19.10/php/docker-compose.yml b/linux/ecosystem/nginx/1.19.10/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/php/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-php" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/.env b/linux/ecosystem/nginx/1.19.10/rtmp-hls/.env new file mode 100644 index 000000000..25655a5b6 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.19.10 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.19.10.tar.gz diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.19.10/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/Dockerfile @@ -0,0 +1,127 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG NGINX_RTMP_MODULE_VERSION=1.2.1 + +################################################################## +# Clear sources.list.d +################################################################## +RUN rm -rfv /etc/apt/sources.list.d/* + +################################################################## +# sid sources list +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN apt update + +################################################################## +# installing utils +################################################################## +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libpcre3-dev \ + librtmp1 \ + libtheora0 \ + libvorbis-dev \ + libmp3lame0 \ + libx264-dev \ + libx265-dev + + +################################################################## +# stretch sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.stretch.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx4 + + +################################################################## +# buster sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.buster.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx5 + + +################################################################## +# sid sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx6 + + +################################################################## +# installing deps for rtmp module +################################################################## +RUN mkdir -p /usr/share/nginx/html \ + /mnt/hls \ + /mnt/dash \ + /tmp/build && \ + chown -R www-data:www-data /mnt/hls && \ + chown -R www-data:www-data /mnt/dash && \ + chmod -R 755 /mnt/hls && \ + chmod -R 755 /mnt/dash && \ + cd /tmp/build && \ + wget https://github.com/arut/nginx-rtmp-module/archive/v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + tar -zxf v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + rm v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + cp /tmp/build/nginx-rtmp-module-${NGINX_RTMP_MODULE_VERSION}/stat.xsl /usr/share/nginx/html/stat.xsl && \ + rm -rf /tmp/build + + +################################################################## +# Forward logs to Docker +################################################################## +RUN ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log + + +################################################################## +# Copy nginx config file to container +################################################################## +RUN rm -rfv /etc/nginx/nginx.conf \ + /etc/nginx/sites-avalible/default +COPY conf/nginx.conf /etc/nginx/nginx.conf + + +################################################################## +# Copy html players to container +################################################################## +COPY players /usr/share/nginx/html/players + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + + +EXPOSE 1935 +EXPOSE 8080 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.19.10/rtmp-hls/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/README.md b/linux/ecosystem/nginx/1.19.10/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/README.md @@ -0,0 +1,78 @@ +# RTMP-HLS Docker + +**BASED ON** [TareqAlqutami/rtmp-hls-server](https://github.com/TareqAlqutami/rtmp-hls-server) + +**Docker image for video streaming server that supports RTMP, HLS, and DASH streams.** + +## Description + +This Docker image can be used to create a video streaming server that supports [**RTMP**](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol), [**HLS**](https://en.wikipedia.org/wiki/HTTP_Live_Streaming), [**DASH**](https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP) out of the box. +It also allows adaptive streaming and custom transcoding of video streams. +All modules are built from source on Debian and Alpine Linux base images. + +## Features + * The backend is [**Nginx**](http://nginx.org/en/) with [**nginx-rtmp-module**](https://github.com/arut/nginx-rtmp-module). + * [**FFmpeg**](https://www.ffmpeg.org/) for transcoding and adaptive streaming. + * Default settings: + * RTMP is ON + * HLS is ON (adaptive, 5 variants) + * DASH is ON + * Other Nginx configuration files are also provided to allow for RTMP-only streams or no-FFmpeg transcoding. + * Statistic page of RTMP streams at `http://:/stats`. + * Available web video players (based on [video.js](https://videojs.com/) and [hls.js](https://github.com/video-dev/hls.js/)) at `/usr/share/nginx/html/players`. + +## Usage + +### To run the server +``` +docker run -d -p 1935:1935 -p 8080:8080 epicmorg/balancer:rtmp-hls +``` + +To run with custom conf file: +``` +docker run -d -p 1935:1935 -p 8080:8080 -v custom.conf:/etc/nginx/nginx.conf epicmorg/balancer:rtmp-hls +``` +where `custom.conf` is the new conf file for Nginx. + +### To stream to the server + * **Stream live RTMP content to:** + ``` + rtmp://:1935/live/ + ``` + where `` is any stream key you specify. + + * **Configure [OBS](https://obsproject.com/) to stream content:**
+Go to Settings > Stream, choose the following settings: + * Service: Custom Streaming Server. + * Server: `rtmp://:1935/live`. + * Stream key: anything you want, however provided video players assume stream key is `test` + +### To view the stream + * **Using [VLC](https://www.videolan.org/vlc/index.html):** + * Go to Media > Open Network Stream. + * Enter the streaming URL: `rtmp://:1935/live/` + Replace `` with the IP of where the server is running, and + `` with the stream key you used when setting up the stream. + * For HLS and DASH, the URLs are of the forms: + `http://:8080/hls/.m3u8` and + `http://:8080/dash/_src.mpd` respectively. + * Click Play. + +* **Using provided web players:**
+The provided demo players assume the stream-key is called `test` and the player is opened in localhost. + * To play RTMP content (requires Flash): `http://localhost:8080/players/rtmp.html` + * To play HLS content: `http://localhost:8080/players/hls.html` + * To play HLS content using hls.js library: `http://localhost:8080/players/hls_hlsjs.html` + * To play DASH content: `http://localhost:8080/players/dash.html` + * To play RTMP and HLS contents on the same page: `http://localhost:8080/players/rtmp_hls.html` + + **Notes:** + + * These web players are hardcoded to play stream key "test" at localhost. + * To change the stream source for these players. Download the html files and modify the `src` attribute in the video tag in the html file. You can then mount the modified files to the container as follows: + ``` + docker run -d -p 1935:1935 -p 8080:8080 -v custom_players:/usr/share/nginx/html/players epicmorg/balancer:rtmp-hls + ``` + where `custom_players` is the directory holding the modified html files. + + diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.19.10/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/conf/nginx.conf @@ -0,0 +1,134 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + + # for each received stream, transcode for adaptive streaming + # This single ffmpeg command takes the input and transforms + # the source into 4 different streams with different bitrates + # and qualities. # these settings respect the aspect ratio. + exec_push /usr/bin/ffmpeg -i rtmp://localhost:1935/$app/$name -async 1 -vsync -1 + -c:v libx264 -c:a aac -b:v 256k -b:a 64k -vf "scale=480:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_low + -c:v libx264 -c:a aac -b:v 768k -b:a 128k -vf "scale=720:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_mid + -c:v libx264 -c:a aac -b:v 1024k -b:a 128k -vf "scale=960:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_high + -c:v libx264 -c:a aac -b:v 1920k -b:a 128k -vf "scale=1280:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_hd720 + -c copy -f flv rtmp://localhost:1935/show/$name_src; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 20; + hls_path /mnt/hls/; # hls fragments path + # Instruct clients to adjust resolution according to bandwidth + hls_variant _src BANDWIDTH=4096000; # Source bitrate, source resolution + hls_variant _hd720 BANDWIDTH=2048000; # High bitrate, HD 720p resolution + hls_variant _high BANDWIDTH=1152000; # High bitrate, higher-than-SD resolution + hls_variant _mid BANDWIDTH=448000; # Medium bitrate, SD resolution + hls_variant _low BANDWIDTH=288000; # Low bitrate, sub-SD resolution + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 20; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/ecosystem/nginx/1.19.10/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/conf/nginx_no-ffmpeg.conf @@ -0,0 +1,118 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + push rtmp://localhost:1935/show; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 10; + hls_path /mnt/hls/; # hls fragments path + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 10; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/ecosystem/nginx/1.19.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf @@ -0,0 +1,16 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +rtmp_auto_push on; +events {} +rtmp { + server { + listen 1935; + listen [::]:1935; + + application live { + live on; + record off; + } + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.19.10/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-rtmp-hls" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/hls.html new file mode 100644 index 000000000..15d95b4c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/hls.html @@ -0,0 +1,23 @@ + + + + + HLS Live Streaming + + + + +

HLS Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/hls_hlsjs.html new file mode 100644 index 000000000..0237e7a52 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/hls_hlsjs.html @@ -0,0 +1,41 @@ + + + + + HLS streaming + + + + + + + + + + +

HLS Player (using hls.js)

+ +
+
+ +
+
+ + + + + + + diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/rtmp.html new file mode 100644 index 000000000..d8ce85610 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/rtmp.html @@ -0,0 +1,24 @@ + + + + + RTMP Live Streaming + Live Streaming + + + + + + + +

RTMP Player

+ + + + + diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/rtmp_hls.html new file mode 100644 index 000000000..35617e913 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/rtmp_hls.html @@ -0,0 +1,30 @@ + + + + + Live Streaming + + + + + + + + +

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/sources.list.d/sources.buster.list b/linux/ecosystem/nginx/1.19.10/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ buster main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster main contrib non-free +deb http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb http://httpredir.debian.org/debian-multimedia/ buster-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/sources.list.d/sources.sid.list b/linux/ecosystem/nginx/1.19.10/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..465c737af --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ sid main contrib non-free +deb-src http://httpredir.debian.org/debian/ sid main contrib non-free +deb http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free + +#backports +#deb http://httpredir.debian.org/debian/ testing-backports main contrib non-free +#deb-src http://httpredir.debian.org/debian/ testing-backports main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ testing-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ testing-security main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ sid main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/nginx/1.19.10/rtmp-hls/sources.list.d/sources.stretch.list b/linux/ecosystem/nginx/1.19.10/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..617bf9bb6 --- /dev/null +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ stretch main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb http://httpredir.debian.org/debian-multimedia/ stretch-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch-backports main diff --git a/linux/ecosystem/nginx/1.20.1/main/.env b/linux/ecosystem/nginx/1.20.1/main/.env new file mode 100644 index 000000000..7688d73d2 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.20.1 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.20.1.tar.gz diff --git a/linux/ecosystem/nginx/1.20.1/main/Dockerfile b/linux/ecosystem/nginx/1.20.1/main/Dockerfile new file mode 100644 index 000000000..907a090fe --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/main/Dockerfile @@ -0,0 +1,245 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG PRE_DIR=${BUILDS_DIR}/pre +ARG NGINX_SRC_DIR=${SRC_DIR}/nginx +ARG NGINX_VERSION +ARG NGINX_DOWNLOAD_URL +ARG LUAJIT_INC=/usr/local/include/luajit-2.1 +ARG LUAJIT_LIB=/usr/local/lib + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${PRE_DIR} ${NGINX_SRC_DIR} /usr/lib/nginx +ADD pre/luajit2-description-pak ${PRE_DIR} +ADD pre/nginx-description-pak ${PRE_DIR} +ADD pre/ip2location-description-pak ${PRE_DIR} + +################################################################## +# IP2Location support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2 && \ + cp -fv ${PRE_DIR}/ip2location-description-pak ${SRC_DIR}/ip2/description-pak && \ + cd ${SRC_DIR}/ip2 && \ + ls -las && \ + autoreconf -i -v --force && \ + aclocal && \ + automake --gnu --add-missing && \ + autoconf && \ + autoreconf -i -v --force && \ + ./configure && \ + ls -las && \ + make clean && \ + make && \ + make -C data convert && \ + make check && \ + ls -las && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=ip2-custom --conflicts=ip2 --install=yes -y && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + dpkg --force-all -i ${EXPORT_DIR}/*.deb + +################################################################## +# luaJIT 2 support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/openresty/luajit2.git luajit2 && \ + cp -fv ${PRE_DIR}/luajit2-description-pak ${SRC_DIR}/luajit2/description-pak && \ + cd ${SRC_DIR}/luajit2 && \ + make && \ + make install && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=luajit2-custom --conflicts=luajit2 --install=no -y + +################################################################## +# nginx preparing +################################################################## +RUN wget -qO - ${NGINX_DOWNLOAD_URL} | tar -zxv --strip-components=1 -C ${NGINX_SRC_DIR} && \ + cd ${NGINX_SRC_DIR} && \ + git clone https://github.com/openresty/headers-more-nginx-module.git http-headers-more-filter && \ + git clone https://github.com/sto/ngx_http_auth_pam_module.git http-auth-pam && \ + git clone https://github.com/arut/nginx-dav-ext-module.git http-dav-ext && \ + git clone https://github.com/openresty/echo-nginx-module.git http-echo && \ + git clone https://github.com/aperezdc/ngx-fancyindex.git http-fancyindex && \ + git clone https://github.com/slact/nchan.git nchan && \ + git clone https://github.com/masterzen/nginx-upload-progress-module.git http-uploadprogress && \ + git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module http-subs-filter && \ + git clone https://github.com/grahamedgecombe/nginx-ct.git ssl-ct && \ + git clone https://github.com/stnoonan/spnego-http-auth-nginx-module.git spnego-http-auth-nginx-module && \ + git clone https://github.com/leev/ngx_http_geoip2_module http-geoip2 && \ + git clone https://github.com/flavioribeiro/nginx-audio-track-for-hls-module.git nginx-audio-track-for-hls-module && \ + git clone https://github.com/chrislim2888/ip2location-nginx.git ip2location-nginx && \ + git clone https://github.com/kaltura/nginx-vod-module.git nginx-vod-module && \ + git clone https://github.com/vozlt/nginx-module-vts.git nginx-module-vts && \ + git clone https://github.com/evanmiller/mod_zip.git mod-zip && \ + git clone https://github.com/alibaba/nginx-http-user-agent.git nginx-http-user-agent && \ + git clone https://github.com/youzee/nginx-unzip-module.git nginx-unzip-module && \ + git clone https://github.com/vladbondarenko/ngx_webp.git ngx-webp && \ + git clone https://github.com/openresty/xss-nginx-module.git xss-nginx-module && \ + git clone https://github.com/openresty/set-misc-nginx-module.git set-misc-nginx-module && \ + git clone https://github.com/arut/nginx-rtmp-module.git rtmp && \ + git clone https://github.com/kvspb/nginx-auth-ldap.git http-auth-ldap && \ + git clone https://github.com/simplresty/ngx_devel_kit.git http-ndk && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2location-c-7.0.0 && \ + git clone https://github.com/itoffshore/nginx-upstream-fair.git http-upstream-fair && \ + git clone https://github.com/yaoweibin/nginx_upstream_check_module.git nginx-upstream-check-module && \ + git clone https://github.com/openresty/lua-nginx-module http-lua + +################################################################## +# nginx compilling +################################################################## +RUN cd ${NGINX_SRC_DIR} && \ + ./configure \ + --sbin-path=/usr/sbin/nginx \ + --prefix=/usr/share/nginx \ + --conf-path=/etc/nginx/nginx.conf \ + --http-log-path=/var/log/nginx/access.log \ + --error-log-path=/var/log/nginx/error.log \ + --lock-path=/var/lock/nginx.lock \ + --pid-path=/run/nginx.pid \ + --modules-path=/usr/lib/nginx/modules \ + --http-client-body-temp-path=/var/lib/nginx/body \ + --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ + --http-proxy-temp-path=/var/lib/nginx/proxy \ + --http-scgi-temp-path=/var/lib/nginx/scgi \ + --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ + --with-cc-opt='-I/usr/local/include/luajit-2.1 -g -O2 -lz -fstack-protector-strong -Wformat -Wno-error=date-time -Wno-error=implicit-fallthrough= -Wno-error=cast-function-type -Wno-error=format-security -Wno-error=implicit-function-declaration -Wno-error=deprecated-declarations -Wno-error=unused-result -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' \ + --with-ld-opt='-Wl,-z,relro -Wl,-z,now -lz -fPIC -L/usr/local/lib' \ + --with-file-aio \ + --with-compat \ + --with-debug \ + --with-threads \ + --with-pcre-jit \ + --with-http_ssl_module \ + --with-http_stub_status_module \ + --with-http_realip_module \ + --with-http_auth_request_module \ + --with-http_v2_module \ + --with-http_dav_module \ + --with-http_slice_module \ + --with-http_addition_module \ + --with-http_flv_module \ + --with-http_geoip_module=dynamic \ + --with-http_gunzip_module \ + --with-http_gzip_static_module \ + --with-http_image_filter_module=dynamic \ + --with-http_mp4_module \ + --with-http_perl_module=dynamic \ + --with-http_random_index_module \ + --with-http_secure_link_module \ + --with-http_sub_module \ + --with-http_xslt_module=dynamic \ + --with-mail=dynamic \ + --with-mail_ssl_module \ + --with-stream=dynamic \ + --with-stream_ssl_module \ + --with-stream_ssl_preread_module \ + --add-dynamic-module=http-headers-more-filter \ + --add-dynamic-module=http-auth-pam \ + --add-dynamic-module=http-dav-ext \ + --add-dynamic-module=http-ndk \ + --add-dynamic-module=http-echo \ + --add-dynamic-module=http-fancyindex \ + --add-dynamic-module=nchan \ + --add-dynamic-module=http-uploadprogress \ + --add-dynamic-module=http-subs-filter \ + --add-dynamic-module=ssl-ct \ + --add-dynamic-module=http-geoip2 \ + --add-dynamic-module=spnego-http-auth-nginx-module \ + --add-dynamic-module=http-auth-ldap \ +# --add-dynamic-module=nginx-audio-track-for-hls-module \ + --add-dynamic-module=ip2location-nginx \ + --add-dynamic-module=nginx-vod-module \ +# --add-dynamic-module=nginx-module-vts \ + --add-dynamic-module=mod-zip \ + --add-dynamic-module=nginx-http-user-agent \ + --add-dynamic-module=nginx-unzip-module \ + --add-dynamic-module=ngx-webp \ + --add-dynamic-module=set-misc-nginx-module \ + --add-dynamic-module=rtmp \ + --add-dynamic-module=http-upstream-fair \ + --add-dynamic-module=nginx-upstream-check-module \ + --add-dynamic-module=http-lua && \ + cp -fv ${PRE_DIR}/nginx-description-pak ${NGINX_SRC_DIR}/description-pak && \ + fakeroot checkinstall -D --pakdir=/builds/export --maintainer="EpicMorg, developer@epicm.org" --pkgname=nginx-custom --install=no -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +################################################################## +# Installing nginx from deb +################################################################## +ADD pre/ngninx.pre.tar.gz / +COPY --from=builder /builds/export /tmp/deb +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + geoip-database \ + geoip-bin \ + libgeoip1 \ + libmaxminddb0 \ + libgd3 \ + libxslt1.1 && \ + dpkg --force-all -i /tmp/deb/*.deb && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /usr/lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /usr/lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /usr/lib/libIP2Location.so.5 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /lib/libIP2Location.so.5 && \ + ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log && \ + ln -sf /etc/ssl/dhparam.pem /etc/nginx/dhparam.pem && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /var/cache/apt/archives/*.deb && \ + rm -rf /tmp/deb/* && \ + rm -rf /builds/* && \ + rm -rf /valve/* + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.20.1/main/Makefile b/linux/ecosystem/nginx/1.20.1/main/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.20.1/main/README.md b/linux/ecosystem/nginx/1.20.1/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/main/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/1.20.1/main/docker-compose.yml b/linux/ecosystem/nginx/1.20.1/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.20.1/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.20.1/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/ecosystem/nginx/1.20.1/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.20.1/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/ecosystem/nginx/1.20.1/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.20.1/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/main/pre/nginx-description-pak @@ -0,0 +1 @@ +Custom build of Nginx with some modules by EpicMorg. \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.20.1/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.20.1/main/pre/ngninx.pre.tar.gz new file mode 100644 index 000000000..bf9c27351 Binary files /dev/null and b/linux/ecosystem/nginx/1.20.1/main/pre/ngninx.pre.tar.gz differ diff --git a/linux/ecosystem/nginx/1.20.1/php/.env b/linux/ecosystem/nginx/1.20.1/php/.env new file mode 100644 index 000000000..7688d73d2 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/php/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.20.1 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.20.1.tar.gz diff --git a/linux/ecosystem/nginx/1.20.1/php/Dockerfile b/linux/ecosystem/nginx/1.20.1/php/Dockerfile new file mode 100644 index 000000000..3b2664f17 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/php/Dockerfile @@ -0,0 +1,257 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 + +ARG P4API_VER=r20.1 +ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP7 +################################################################## +#installing php repo + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + smbclient libsmbclient libsmbclient-dev \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} + + +################################################################## +# compilling smbclient +################################################################## +RUN pecl install smbclient && \ + cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Installing php fpm for nginx from deb +################################################################## +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 +ARG PHP_VER=7.4 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini + +################################################################## +# Installing PHP7 +################################################################## +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi \ + php-pear \ + php7.4-gmp \ + php7.4-snmp \ + php7.4-ldap \ + php7.4-mail \ + php7.4-soap \ + php7.4-mysql \ + php7.4-memcached \ + php7.4-memcache \ + php7.4-igbinary \ + php7.4-interbase \ + php7.4-curl \ + php7.4-gd \ + php7.4-intl \ + php7.4-zip \ + php7.4-bcmath \ + php7.4-imap \ + php7.4-pspell \ + php7.4-sqlite3 \ + php7.4-tidy \ + php7.4-xmlrpc \ + php7.4-xml \ + php7.4-mbstring \ + php7.4-apcu \ + php7.4-common \ + php7.4-json \ + php7.4-readline \ + php7.4-enchant \ + php7.4-ssh2 \ + php7.4-oauth \ + php7.4-gmagick \ + php7.4-gnupg \ + php7.4-redis \ + smbclient libsmbclient \ +# php-smbclient \ + php7.4-yaml \ + php7.4-geoip \ + sendmail && \ + update-alternatives --set php /usr/bin/php7.4 && \ + phpenmod \ + snmp \ + gmp \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + gnupg \ + iconv \ + imap \ + json \ + mbstring \ + memcached \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} +RUN echo "extension=smbclient.so" > ${SMB_PHP_INI} && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ + php -m && \ + php -v + + + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.20.1/php/Makefile b/linux/ecosystem/nginx/1.20.1/php/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/php/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.20.1/php/README.md b/linux/ecosystem/nginx/1.20.1/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/php/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/1.20.1/php/docker-compose.yml b/linux/ecosystem/nginx/1.20.1/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/php/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-php" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/.env b/linux/ecosystem/nginx/1.20.1/rtmp-hls/.env new file mode 100644 index 000000000..7688d73d2 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.20.1 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.20.1.tar.gz diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.20.1/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/Dockerfile @@ -0,0 +1,127 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG NGINX_RTMP_MODULE_VERSION=1.2.1 + +################################################################## +# Clear sources.list.d +################################################################## +RUN rm -rfv /etc/apt/sources.list.d/* + +################################################################## +# sid sources list +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN apt update + +################################################################## +# installing utils +################################################################## +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libpcre3-dev \ + librtmp1 \ + libtheora0 \ + libvorbis-dev \ + libmp3lame0 \ + libx264-dev \ + libx265-dev + + +################################################################## +# stretch sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.stretch.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx4 + + +################################################################## +# buster sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.buster.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx5 + + +################################################################## +# sid sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx6 + + +################################################################## +# installing deps for rtmp module +################################################################## +RUN mkdir -p /usr/share/nginx/html \ + /mnt/hls \ + /mnt/dash \ + /tmp/build && \ + chown -R www-data:www-data /mnt/hls && \ + chown -R www-data:www-data /mnt/dash && \ + chmod -R 755 /mnt/hls && \ + chmod -R 755 /mnt/dash && \ + cd /tmp/build && \ + wget https://github.com/arut/nginx-rtmp-module/archive/v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + tar -zxf v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + rm v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + cp /tmp/build/nginx-rtmp-module-${NGINX_RTMP_MODULE_VERSION}/stat.xsl /usr/share/nginx/html/stat.xsl && \ + rm -rf /tmp/build + + +################################################################## +# Forward logs to Docker +################################################################## +RUN ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log + + +################################################################## +# Copy nginx config file to container +################################################################## +RUN rm -rfv /etc/nginx/nginx.conf \ + /etc/nginx/sites-avalible/default +COPY conf/nginx.conf /etc/nginx/nginx.conf + + +################################################################## +# Copy html players to container +################################################################## +COPY players /usr/share/nginx/html/players + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + + +EXPOSE 1935 +EXPOSE 8080 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.20.1/rtmp-hls/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/README.md b/linux/ecosystem/nginx/1.20.1/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/README.md @@ -0,0 +1,78 @@ +# RTMP-HLS Docker + +**BASED ON** [TareqAlqutami/rtmp-hls-server](https://github.com/TareqAlqutami/rtmp-hls-server) + +**Docker image for video streaming server that supports RTMP, HLS, and DASH streams.** + +## Description + +This Docker image can be used to create a video streaming server that supports [**RTMP**](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol), [**HLS**](https://en.wikipedia.org/wiki/HTTP_Live_Streaming), [**DASH**](https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP) out of the box. +It also allows adaptive streaming and custom transcoding of video streams. +All modules are built from source on Debian and Alpine Linux base images. + +## Features + * The backend is [**Nginx**](http://nginx.org/en/) with [**nginx-rtmp-module**](https://github.com/arut/nginx-rtmp-module). + * [**FFmpeg**](https://www.ffmpeg.org/) for transcoding and adaptive streaming. + * Default settings: + * RTMP is ON + * HLS is ON (adaptive, 5 variants) + * DASH is ON + * Other Nginx configuration files are also provided to allow for RTMP-only streams or no-FFmpeg transcoding. + * Statistic page of RTMP streams at `http://:/stats`. + * Available web video players (based on [video.js](https://videojs.com/) and [hls.js](https://github.com/video-dev/hls.js/)) at `/usr/share/nginx/html/players`. + +## Usage + +### To run the server +``` +docker run -d -p 1935:1935 -p 8080:8080 epicmorg/balancer:rtmp-hls +``` + +To run with custom conf file: +``` +docker run -d -p 1935:1935 -p 8080:8080 -v custom.conf:/etc/nginx/nginx.conf epicmorg/balancer:rtmp-hls +``` +where `custom.conf` is the new conf file for Nginx. + +### To stream to the server + * **Stream live RTMP content to:** + ``` + rtmp://:1935/live/ + ``` + where `` is any stream key you specify. + + * **Configure [OBS](https://obsproject.com/) to stream content:**
+Go to Settings > Stream, choose the following settings: + * Service: Custom Streaming Server. + * Server: `rtmp://:1935/live`. + * Stream key: anything you want, however provided video players assume stream key is `test` + +### To view the stream + * **Using [VLC](https://www.videolan.org/vlc/index.html):** + * Go to Media > Open Network Stream. + * Enter the streaming URL: `rtmp://:1935/live/` + Replace `` with the IP of where the server is running, and + `` with the stream key you used when setting up the stream. + * For HLS and DASH, the URLs are of the forms: + `http://:8080/hls/.m3u8` and + `http://:8080/dash/_src.mpd` respectively. + * Click Play. + +* **Using provided web players:**
+The provided demo players assume the stream-key is called `test` and the player is opened in localhost. + * To play RTMP content (requires Flash): `http://localhost:8080/players/rtmp.html` + * To play HLS content: `http://localhost:8080/players/hls.html` + * To play HLS content using hls.js library: `http://localhost:8080/players/hls_hlsjs.html` + * To play DASH content: `http://localhost:8080/players/dash.html` + * To play RTMP and HLS contents on the same page: `http://localhost:8080/players/rtmp_hls.html` + + **Notes:** + + * These web players are hardcoded to play stream key "test" at localhost. + * To change the stream source for these players. Download the html files and modify the `src` attribute in the video tag in the html file. You can then mount the modified files to the container as follows: + ``` + docker run -d -p 1935:1935 -p 8080:8080 -v custom_players:/usr/share/nginx/html/players epicmorg/balancer:rtmp-hls + ``` + where `custom_players` is the directory holding the modified html files. + + diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.20.1/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/conf/nginx.conf @@ -0,0 +1,134 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + + # for each received stream, transcode for adaptive streaming + # This single ffmpeg command takes the input and transforms + # the source into 4 different streams with different bitrates + # and qualities. # these settings respect the aspect ratio. + exec_push /usr/bin/ffmpeg -i rtmp://localhost:1935/$app/$name -async 1 -vsync -1 + -c:v libx264 -c:a aac -b:v 256k -b:a 64k -vf "scale=480:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_low + -c:v libx264 -c:a aac -b:v 768k -b:a 128k -vf "scale=720:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_mid + -c:v libx264 -c:a aac -b:v 1024k -b:a 128k -vf "scale=960:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_high + -c:v libx264 -c:a aac -b:v 1920k -b:a 128k -vf "scale=1280:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_hd720 + -c copy -f flv rtmp://localhost:1935/show/$name_src; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 20; + hls_path /mnt/hls/; # hls fragments path + # Instruct clients to adjust resolution according to bandwidth + hls_variant _src BANDWIDTH=4096000; # Source bitrate, source resolution + hls_variant _hd720 BANDWIDTH=2048000; # High bitrate, HD 720p resolution + hls_variant _high BANDWIDTH=1152000; # High bitrate, higher-than-SD resolution + hls_variant _mid BANDWIDTH=448000; # Medium bitrate, SD resolution + hls_variant _low BANDWIDTH=288000; # Low bitrate, sub-SD resolution + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 20; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/ecosystem/nginx/1.20.1/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/conf/nginx_no-ffmpeg.conf @@ -0,0 +1,118 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + push rtmp://localhost:1935/show; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 10; + hls_path /mnt/hls/; # hls fragments path + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 10; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/ecosystem/nginx/1.20.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf @@ -0,0 +1,16 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +rtmp_auto_push on; +events {} +rtmp { + server { + listen 1935; + listen [::]:1935; + + application live { + live on; + record off; + } + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.20.1/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-rtmp-hls" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/hls.html new file mode 100644 index 000000000..15d95b4c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/hls.html @@ -0,0 +1,23 @@ + + + + + HLS Live Streaming + + + + +

HLS Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/hls_hlsjs.html new file mode 100644 index 000000000..0237e7a52 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/hls_hlsjs.html @@ -0,0 +1,41 @@ + + + + + HLS streaming + + + + + + + + + + +

HLS Player (using hls.js)

+ +
+
+ +
+
+ + + + + + + diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/rtmp.html new file mode 100644 index 000000000..d8ce85610 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/rtmp.html @@ -0,0 +1,24 @@ + + + + + RTMP Live Streaming + Live Streaming + + + + + + + +

RTMP Player

+ + + + + diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/rtmp_hls.html new file mode 100644 index 000000000..35617e913 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/rtmp_hls.html @@ -0,0 +1,30 @@ + + + + + Live Streaming + + + + + + + + +

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/sources.list.d/sources.buster.list b/linux/ecosystem/nginx/1.20.1/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ buster main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster main contrib non-free +deb http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb http://httpredir.debian.org/debian-multimedia/ buster-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/sources.list.d/sources.sid.list b/linux/ecosystem/nginx/1.20.1/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..465c737af --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ sid main contrib non-free +deb-src http://httpredir.debian.org/debian/ sid main contrib non-free +deb http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free + +#backports +#deb http://httpredir.debian.org/debian/ testing-backports main contrib non-free +#deb-src http://httpredir.debian.org/debian/ testing-backports main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ testing-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ testing-security main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ sid main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/nginx/1.20.1/rtmp-hls/sources.list.d/sources.stretch.list b/linux/ecosystem/nginx/1.20.1/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..617bf9bb6 --- /dev/null +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ stretch main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb http://httpredir.debian.org/debian-multimedia/ stretch-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch-backports main diff --git a/linux/ecosystem/nginx/1.21.3/main/.env b/linux/ecosystem/nginx/1.21.3/main/.env new file mode 100644 index 000000000..f85e95b3d --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.21.3 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.3.tar.gz diff --git a/linux/ecosystem/nginx/1.21.3/main/Dockerfile b/linux/ecosystem/nginx/1.21.3/main/Dockerfile new file mode 100644 index 000000000..d63287502 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/main/Dockerfile @@ -0,0 +1,244 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG PRE_DIR=${BUILDS_DIR}/pre +ARG NGINX_SRC_DIR=${SRC_DIR}/nginx +ARG NGINX_VERSION +ARG NGINX_DOWNLOAD_URL +ARG LUAJIT_INC=/usr/local/include/luajit-2.1 +ARG LUAJIT_LIB=/usr/local/lib + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${PRE_DIR} ${NGINX_SRC_DIR} /usr/lib/nginx +ADD pre/luajit2-description-pak ${PRE_DIR} +ADD pre/nginx-description-pak ${PRE_DIR} +ADD pre/ip2location-description-pak ${PRE_DIR} + +################################################################## +# IP2Location support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2 && \ + cp -fv ${PRE_DIR}/ip2location-description-pak ${SRC_DIR}/ip2/description-pak && \ + cd ${SRC_DIR}/ip2 && \ ls -las && \ + autoreconf -i -v --force && \ + aclocal && \ + automake --gnu --add-missing && \ + autoconf && \ + autoreconf -i -v --force && \ + ./configure && \ + ls -las && \ + make clean && \ + make && \ + make -C data convert && \ + make check && \ + ls -las && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=ip2-custom --conflicts=ip2 --install=yes -y && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + dpkg --force-all -i ${EXPORT_DIR}/*.deb + +################################################################## +# luaJIT 2 support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/openresty/luajit2.git luajit2 && \ + cp -fv ${PRE_DIR}/luajit2-description-pak ${SRC_DIR}/luajit2/description-pak && \ + cd ${SRC_DIR}/luajit2 && \ + make && \ + make install && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=luajit2-custom --conflicts=luajit2 --install=no -y + +################################################################## +# nginx preparing +################################################################## +RUN wget -qO - ${NGINX_DOWNLOAD_URL} | tar -zxv --strip-components=1 -C ${NGINX_SRC_DIR} && \ + cd ${NGINX_SRC_DIR} && \ + git clone https://github.com/openresty/headers-more-nginx-module.git http-headers-more-filter && \ + git clone https://github.com/sto/ngx_http_auth_pam_module.git http-auth-pam && \ + git clone https://github.com/arut/nginx-dav-ext-module.git http-dav-ext && \ + git clone https://github.com/openresty/echo-nginx-module.git http-echo && \ + git clone https://github.com/aperezdc/ngx-fancyindex.git http-fancyindex && \ + git clone https://github.com/slact/nchan.git nchan && \ + git clone https://github.com/masterzen/nginx-upload-progress-module.git http-uploadprogress && \ + git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module http-subs-filter && \ + git clone https://github.com/grahamedgecombe/nginx-ct.git ssl-ct && \ + git clone https://github.com/stnoonan/spnego-http-auth-nginx-module.git spnego-http-auth-nginx-module && \ + git clone https://github.com/leev/ngx_http_geoip2_module http-geoip2 && \ + git clone https://github.com/flavioribeiro/nginx-audio-track-for-hls-module.git nginx-audio-track-for-hls-module && \ + git clone https://github.com/chrislim2888/ip2location-nginx.git ip2location-nginx && \ + git clone https://github.com/kaltura/nginx-vod-module.git nginx-vod-module && \ + git clone https://github.com/vozlt/nginx-module-vts.git nginx-module-vts && \ + git clone https://github.com/evanmiller/mod_zip.git mod-zip && \ + git clone https://github.com/alibaba/nginx-http-user-agent.git nginx-http-user-agent && \ + git clone https://github.com/youzee/nginx-unzip-module.git nginx-unzip-module && \ + git clone https://github.com/vladbondarenko/ngx_webp.git ngx-webp && \ + git clone https://github.com/openresty/xss-nginx-module.git xss-nginx-module && \ + git clone https://github.com/openresty/set-misc-nginx-module.git set-misc-nginx-module && \ + git clone https://github.com/arut/nginx-rtmp-module.git rtmp && \ + git clone https://github.com/kvspb/nginx-auth-ldap.git http-auth-ldap && \ + git clone https://github.com/simplresty/ngx_devel_kit.git http-ndk && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2location-c-7.0.0 && \ + git clone https://github.com/itoffshore/nginx-upstream-fair.git http-upstream-fair && \ + git clone https://github.com/yaoweibin/nginx_upstream_check_module.git nginx-upstream-check-module && \ + git clone https://github.com/openresty/lua-nginx-module http-lua + +################################################################## +# nginx compilling +################################################################## +RUN cd ${NGINX_SRC_DIR} && \ + ./configure \ + --sbin-path=/usr/sbin/nginx \ + --prefix=/usr/share/nginx \ + --conf-path=/etc/nginx/nginx.conf \ + --http-log-path=/var/log/nginx/access.log \ + --error-log-path=/var/log/nginx/error.log \ + --lock-path=/var/lock/nginx.lock \ + --pid-path=/run/nginx.pid \ + --modules-path=/usr/lib/nginx/modules \ + --http-client-body-temp-path=/var/lib/nginx/body \ + --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ + --http-proxy-temp-path=/var/lib/nginx/proxy \ + --http-scgi-temp-path=/var/lib/nginx/scgi \ + --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ + --with-cc-opt='-I/usr/local/include/luajit-2.1 -g -O2 -lz -fstack-protector-strong -Wformat -Wno-error=date-time -Wno-error=implicit-fallthrough= -Wno-error=cast-function-type -Wno-error=format-security -Wno-error=implicit-function-declaration -Wno-error=deprecated-declarations -Wno-error=unused-result -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' \ + --with-ld-opt='-Wl,-z,relro -Wl,-z,now -lz -fPIC -L/usr/local/lib' \ + --with-file-aio \ + --with-compat \ + --with-debug \ + --with-threads \ + --with-pcre-jit \ + --with-http_ssl_module \ + --with-http_stub_status_module \ + --with-http_realip_module \ + --with-http_auth_request_module \ + --with-http_v2_module \ + --with-http_dav_module \ + --with-http_slice_module \ + --with-http_addition_module \ + --with-http_flv_module \ + --with-http_geoip_module=dynamic \ + --with-http_gunzip_module \ + --with-http_gzip_static_module \ + --with-http_image_filter_module=dynamic \ + --with-http_mp4_module \ + --with-http_perl_module=dynamic \ + --with-http_random_index_module \ + --with-http_secure_link_module \ + --with-http_sub_module \ + --with-http_xslt_module=dynamic \ + --with-mail=dynamic \ + --with-mail_ssl_module \ + --with-stream=dynamic \ + --with-stream_ssl_module \ + --with-stream_ssl_preread_module \ + --add-dynamic-module=http-headers-more-filter \ + --add-dynamic-module=http-auth-pam \ + --add-dynamic-module=http-dav-ext \ + --add-dynamic-module=http-ndk \ + --add-dynamic-module=http-echo \ + --add-dynamic-module=http-fancyindex \ + --add-dynamic-module=nchan \ + --add-dynamic-module=http-uploadprogress \ + --add-dynamic-module=http-subs-filter \ + --add-dynamic-module=ssl-ct \ + --add-dynamic-module=http-geoip2 \ + --add-dynamic-module=spnego-http-auth-nginx-module \ + --add-dynamic-module=http-auth-ldap \ +# --add-dynamic-module=nginx-audio-track-for-hls-module \ + --add-dynamic-module=ip2location-nginx \ + --add-dynamic-module=nginx-vod-module \ +# --add-dynamic-module=nginx-module-vts \ + --add-dynamic-module=mod-zip \ + --add-dynamic-module=nginx-http-user-agent \ + --add-dynamic-module=nginx-unzip-module \ + --add-dynamic-module=ngx-webp \ + --add-dynamic-module=set-misc-nginx-module \ + --add-dynamic-module=rtmp \ + --add-dynamic-module=http-upstream-fair \ + --add-dynamic-module=nginx-upstream-check-module \ + --add-dynamic-module=http-lua && \ + cp -fv ${PRE_DIR}/nginx-description-pak ${NGINX_SRC_DIR}/description-pak && \ + fakeroot checkinstall -D --pakdir=/builds/export --maintainer="EpicMorg, developer@epicm.org" --pkgname=nginx-custom --install=no -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +################################################################## +# Installing nginx from deb +################################################################## +ADD pre/ngninx.pre.tar.gz / +COPY --from=builder /builds/export /tmp/deb +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + geoip-database \ + geoip-bin \ + libgeoip1 \ + libmaxminddb0 \ + libgd3 \ + libxslt1.1 && \ + dpkg --force-all -i /tmp/deb/*.deb && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /usr/lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /usr/lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /usr/lib/libIP2Location.so.5 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /lib/libIP2Location.so.5 && \ + ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log && \ + ln -sf /etc/ssl/dhparam.pem /etc/nginx/dhparam.pem && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /var/cache/apt/archives/*.deb && \ + rm -rf /tmp/deb/* && \ + rm -rf /builds/* && \ + rm -rf /valve/* + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.21.3/main/Makefile b/linux/ecosystem/nginx/1.21.3/main/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.21.3/main/README.md b/linux/ecosystem/nginx/1.21.3/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/main/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/1.21.3/main/docker-compose.yml b/linux/ecosystem/nginx/1.21.3/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.21.3/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.21.3/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/ecosystem/nginx/1.21.3/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.21.3/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/ecosystem/nginx/1.21.3/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.21.3/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/main/pre/nginx-description-pak @@ -0,0 +1 @@ +Custom build of Nginx with some modules by EpicMorg. \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.21.3/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.21.3/main/pre/ngninx.pre.tar.gz new file mode 100644 index 000000000..bf9c27351 Binary files /dev/null and b/linux/ecosystem/nginx/1.21.3/main/pre/ngninx.pre.tar.gz differ diff --git a/linux/ecosystem/nginx/1.21.3/php/.env b/linux/ecosystem/nginx/1.21.3/php/.env new file mode 100644 index 000000000..f85e95b3d --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/php/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.21.3 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.3.tar.gz diff --git a/linux/ecosystem/nginx/1.21.3/php/Dockerfile b/linux/ecosystem/nginx/1.21.3/php/Dockerfile new file mode 100644 index 000000000..3b2664f17 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/php/Dockerfile @@ -0,0 +1,257 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 + +ARG P4API_VER=r20.1 +ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP7 +################################################################## +#installing php repo + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + smbclient libsmbclient libsmbclient-dev \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} + + +################################################################## +# compilling smbclient +################################################################## +RUN pecl install smbclient && \ + cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Installing php fpm for nginx from deb +################################################################## +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 +ARG PHP_VER=7.4 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini + +################################################################## +# Installing PHP7 +################################################################## +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi \ + php-pear \ + php7.4-gmp \ + php7.4-snmp \ + php7.4-ldap \ + php7.4-mail \ + php7.4-soap \ + php7.4-mysql \ + php7.4-memcached \ + php7.4-memcache \ + php7.4-igbinary \ + php7.4-interbase \ + php7.4-curl \ + php7.4-gd \ + php7.4-intl \ + php7.4-zip \ + php7.4-bcmath \ + php7.4-imap \ + php7.4-pspell \ + php7.4-sqlite3 \ + php7.4-tidy \ + php7.4-xmlrpc \ + php7.4-xml \ + php7.4-mbstring \ + php7.4-apcu \ + php7.4-common \ + php7.4-json \ + php7.4-readline \ + php7.4-enchant \ + php7.4-ssh2 \ + php7.4-oauth \ + php7.4-gmagick \ + php7.4-gnupg \ + php7.4-redis \ + smbclient libsmbclient \ +# php-smbclient \ + php7.4-yaml \ + php7.4-geoip \ + sendmail && \ + update-alternatives --set php /usr/bin/php7.4 && \ + phpenmod \ + snmp \ + gmp \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + gnupg \ + iconv \ + imap \ + json \ + mbstring \ + memcached \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} +RUN echo "extension=smbclient.so" > ${SMB_PHP_INI} && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ + php -m && \ + php -v + + + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.21.3/php/Makefile b/linux/ecosystem/nginx/1.21.3/php/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/php/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.21.3/php/README.md b/linux/ecosystem/nginx/1.21.3/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/php/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/1.21.3/php/docker-compose.yml b/linux/ecosystem/nginx/1.21.3/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/php/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-php" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/.env b/linux/ecosystem/nginx/1.21.3/rtmp-hls/.env new file mode 100644 index 000000000..f85e95b3d --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.21.3 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.3.tar.gz diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.21.3/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/Dockerfile @@ -0,0 +1,127 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG NGINX_RTMP_MODULE_VERSION=1.2.1 + +################################################################## +# Clear sources.list.d +################################################################## +RUN rm -rfv /etc/apt/sources.list.d/* + +################################################################## +# sid sources list +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN apt update + +################################################################## +# installing utils +################################################################## +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libpcre3-dev \ + librtmp1 \ + libtheora0 \ + libvorbis-dev \ + libmp3lame0 \ + libx264-dev \ + libx265-dev + + +################################################################## +# stretch sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.stretch.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx4 + + +################################################################## +# buster sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.buster.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx5 + + +################################################################## +# sid sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx6 + + +################################################################## +# installing deps for rtmp module +################################################################## +RUN mkdir -p /usr/share/nginx/html \ + /mnt/hls \ + /mnt/dash \ + /tmp/build && \ + chown -R www-data:www-data /mnt/hls && \ + chown -R www-data:www-data /mnt/dash && \ + chmod -R 755 /mnt/hls && \ + chmod -R 755 /mnt/dash && \ + cd /tmp/build && \ + wget https://github.com/arut/nginx-rtmp-module/archive/v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + tar -zxf v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + rm v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + cp /tmp/build/nginx-rtmp-module-${NGINX_RTMP_MODULE_VERSION}/stat.xsl /usr/share/nginx/html/stat.xsl && \ + rm -rf /tmp/build + + +################################################################## +# Forward logs to Docker +################################################################## +RUN ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log + + +################################################################## +# Copy nginx config file to container +################################################################## +RUN rm -rfv /etc/nginx/nginx.conf \ + /etc/nginx/sites-avalible/default +COPY conf/nginx.conf /etc/nginx/nginx.conf + + +################################################################## +# Copy html players to container +################################################################## +COPY players /usr/share/nginx/html/players + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + + +EXPOSE 1935 +EXPOSE 8080 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.21.3/rtmp-hls/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/README.md b/linux/ecosystem/nginx/1.21.3/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/README.md @@ -0,0 +1,78 @@ +# RTMP-HLS Docker + +**BASED ON** [TareqAlqutami/rtmp-hls-server](https://github.com/TareqAlqutami/rtmp-hls-server) + +**Docker image for video streaming server that supports RTMP, HLS, and DASH streams.** + +## Description + +This Docker image can be used to create a video streaming server that supports [**RTMP**](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol), [**HLS**](https://en.wikipedia.org/wiki/HTTP_Live_Streaming), [**DASH**](https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP) out of the box. +It also allows adaptive streaming and custom transcoding of video streams. +All modules are built from source on Debian and Alpine Linux base images. + +## Features + * The backend is [**Nginx**](http://nginx.org/en/) with [**nginx-rtmp-module**](https://github.com/arut/nginx-rtmp-module). + * [**FFmpeg**](https://www.ffmpeg.org/) for transcoding and adaptive streaming. + * Default settings: + * RTMP is ON + * HLS is ON (adaptive, 5 variants) + * DASH is ON + * Other Nginx configuration files are also provided to allow for RTMP-only streams or no-FFmpeg transcoding. + * Statistic page of RTMP streams at `http://:/stats`. + * Available web video players (based on [video.js](https://videojs.com/) and [hls.js](https://github.com/video-dev/hls.js/)) at `/usr/share/nginx/html/players`. + +## Usage + +### To run the server +``` +docker run -d -p 1935:1935 -p 8080:8080 epicmorg/balancer:rtmp-hls +``` + +To run with custom conf file: +``` +docker run -d -p 1935:1935 -p 8080:8080 -v custom.conf:/etc/nginx/nginx.conf epicmorg/balancer:rtmp-hls +``` +where `custom.conf` is the new conf file for Nginx. + +### To stream to the server + * **Stream live RTMP content to:** + ``` + rtmp://:1935/live/ + ``` + where `` is any stream key you specify. + + * **Configure [OBS](https://obsproject.com/) to stream content:**
+Go to Settings > Stream, choose the following settings: + * Service: Custom Streaming Server. + * Server: `rtmp://:1935/live`. + * Stream key: anything you want, however provided video players assume stream key is `test` + +### To view the stream + * **Using [VLC](https://www.videolan.org/vlc/index.html):** + * Go to Media > Open Network Stream. + * Enter the streaming URL: `rtmp://:1935/live/` + Replace `` with the IP of where the server is running, and + `` with the stream key you used when setting up the stream. + * For HLS and DASH, the URLs are of the forms: + `http://:8080/hls/.m3u8` and + `http://:8080/dash/_src.mpd` respectively. + * Click Play. + +* **Using provided web players:**
+The provided demo players assume the stream-key is called `test` and the player is opened in localhost. + * To play RTMP content (requires Flash): `http://localhost:8080/players/rtmp.html` + * To play HLS content: `http://localhost:8080/players/hls.html` + * To play HLS content using hls.js library: `http://localhost:8080/players/hls_hlsjs.html` + * To play DASH content: `http://localhost:8080/players/dash.html` + * To play RTMP and HLS contents on the same page: `http://localhost:8080/players/rtmp_hls.html` + + **Notes:** + + * These web players are hardcoded to play stream key "test" at localhost. + * To change the stream source for these players. Download the html files and modify the `src` attribute in the video tag in the html file. You can then mount the modified files to the container as follows: + ``` + docker run -d -p 1935:1935 -p 8080:8080 -v custom_players:/usr/share/nginx/html/players epicmorg/balancer:rtmp-hls + ``` + where `custom_players` is the directory holding the modified html files. + + diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.21.3/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/conf/nginx.conf @@ -0,0 +1,134 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + + # for each received stream, transcode for adaptive streaming + # This single ffmpeg command takes the input and transforms + # the source into 4 different streams with different bitrates + # and qualities. # these settings respect the aspect ratio. + exec_push /usr/bin/ffmpeg -i rtmp://localhost:1935/$app/$name -async 1 -vsync -1 + -c:v libx264 -c:a aac -b:v 256k -b:a 64k -vf "scale=480:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_low + -c:v libx264 -c:a aac -b:v 768k -b:a 128k -vf "scale=720:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_mid + -c:v libx264 -c:a aac -b:v 1024k -b:a 128k -vf "scale=960:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_high + -c:v libx264 -c:a aac -b:v 1920k -b:a 128k -vf "scale=1280:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_hd720 + -c copy -f flv rtmp://localhost:1935/show/$name_src; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 20; + hls_path /mnt/hls/; # hls fragments path + # Instruct clients to adjust resolution according to bandwidth + hls_variant _src BANDWIDTH=4096000; # Source bitrate, source resolution + hls_variant _hd720 BANDWIDTH=2048000; # High bitrate, HD 720p resolution + hls_variant _high BANDWIDTH=1152000; # High bitrate, higher-than-SD resolution + hls_variant _mid BANDWIDTH=448000; # Medium bitrate, SD resolution + hls_variant _low BANDWIDTH=288000; # Low bitrate, sub-SD resolution + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 20; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/ecosystem/nginx/1.21.3/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/conf/nginx_no-ffmpeg.conf @@ -0,0 +1,118 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + push rtmp://localhost:1935/show; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 10; + hls_path /mnt/hls/; # hls fragments path + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 10; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/ecosystem/nginx/1.21.3/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf @@ -0,0 +1,16 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +rtmp_auto_push on; +events {} +rtmp { + server { + listen 1935; + listen [::]:1935; + + application live { + live on; + record off; + } + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.21.3/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-rtmp-hls" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/hls.html new file mode 100644 index 000000000..15d95b4c1 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/hls.html @@ -0,0 +1,23 @@ + + + + + HLS Live Streaming + + + + +

HLS Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/hls_hlsjs.html new file mode 100644 index 000000000..0237e7a52 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/hls_hlsjs.html @@ -0,0 +1,41 @@ + + + + + HLS streaming + + + + + + + + + + +

HLS Player (using hls.js)

+ +
+
+ +
+
+ + + + + + + diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/rtmp.html new file mode 100644 index 000000000..d8ce85610 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/rtmp.html @@ -0,0 +1,24 @@ + + + + + RTMP Live Streaming + Live Streaming + + + + + + + +

RTMP Player

+ + + + + diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/rtmp_hls.html new file mode 100644 index 000000000..35617e913 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/rtmp_hls.html @@ -0,0 +1,30 @@ + + + + + Live Streaming + + + + + + + + +

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.buster.list b/linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ buster main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster main contrib non-free +deb http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb http://httpredir.debian.org/debian-multimedia/ buster-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.sid.list b/linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..465c737af --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ sid main contrib non-free +deb-src http://httpredir.debian.org/debian/ sid main contrib non-free +deb http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free + +#backports +#deb http://httpredir.debian.org/debian/ testing-backports main contrib non-free +#deb-src http://httpredir.debian.org/debian/ testing-backports main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ testing-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ testing-security main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ sid main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.stretch.list b/linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..617bf9bb6 --- /dev/null +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ stretch main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb http://httpredir.debian.org/debian-multimedia/ stretch-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch-backports main diff --git a/linux/ecosystem/nginx/latest/main/.env b/linux/ecosystem/nginx/latest/main/.env new file mode 100644 index 000000000..00230635f --- /dev/null +++ b/linux/ecosystem/nginx/latest/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=latest +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.3.tar.gz diff --git a/linux/ecosystem/nginx/latest/main/Dockerfile b/linux/ecosystem/nginx/latest/main/Dockerfile new file mode 100644 index 000000000..2c3d58167 --- /dev/null +++ b/linux/ecosystem/nginx/latest/main/Dockerfile @@ -0,0 +1,246 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG PRE_DIR=${BUILDS_DIR}/pre +ARG NGINX_SRC_DIR=${SRC_DIR}/nginx +ARG NGINX_VERSION +ARG NGINX_DOWNLOAD_URL +ARG LUAJIT_INC=/usr/local/include/luajit-2.1 +ARG LUAJIT_LIB=/usr/local/lib + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${PRE_DIR} ${NGINX_SRC_DIR} /usr/lib/nginx +ADD pre/luajit2-description-pak ${PRE_DIR} +ADD pre/nginx-description-pak ${PRE_DIR} +ADD pre/ip2location-description-pak ${PRE_DIR} + +################################################################## +# IP2Location support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2 && \ + cp -fv ${PRE_DIR}/ip2location-description-pak ${SRC_DIR}/ip2/description-pak && \ + cd ${SRC_DIR}/ip2 && \ + ls -las && \ + autoreconf -i -v --force && \ + aclocal && \ + automake --gnu --add-missing && \ + autoconf && \ + autoreconf -i -v --force && \ + ./configure && \ + ls -las && \ + make clean && \ + make && \ + make -C data convert && \ + make check && \ + ls -las && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=ip2-custom --conflicts=ip2 --install=yes -y && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + dpkg --force-all -i ${EXPORT_DIR}/*.deb + +################################################################## +# luaJIT 2 support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/openresty/luajit2.git luajit2 && \ + cp -fv ${PRE_DIR}/luajit2-description-pak ${SRC_DIR}/luajit2/description-pak && \ + cd ${SRC_DIR}/luajit2 && \ + make && \ + make install && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=luajit2-custom --conflicts=luajit2 --install=no -y + +################################################################## +# nginx preparing +################################################################## +RUN wget -qO - ${NGINX_DOWNLOAD_URL} | tar -zxv --strip-components=1 -C ${NGINX_SRC_DIR} && \ + cd ${NGINX_SRC_DIR} && \ + git clone https://github.com/openresty/headers-more-nginx-module.git http-headers-more-filter && \ + git clone https://github.com/sto/ngx_http_auth_pam_module.git http-auth-pam && \ + git clone https://github.com/arut/nginx-dav-ext-module.git http-dav-ext && \ + git clone https://github.com/openresty/echo-nginx-module.git http-echo && \ + git clone https://github.com/aperezdc/ngx-fancyindex.git http-fancyindex && \ + git clone https://github.com/slact/nchan.git nchan && \ + git clone https://github.com/masterzen/nginx-upload-progress-module.git http-uploadprogress && \ + git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module http-subs-filter && \ + git clone https://github.com/grahamedgecombe/nginx-ct.git ssl-ct && \ + git clone https://github.com/stnoonan/spnego-http-auth-nginx-module.git spnego-http-auth-nginx-module && \ + git clone https://github.com/leev/ngx_http_geoip2_module http-geoip2 && \ + git clone https://github.com/flavioribeiro/nginx-audio-track-for-hls-module.git nginx-audio-track-for-hls-module && \ + git clone https://github.com/chrislim2888/ip2location-nginx.git ip2location-nginx && \ + git clone https://github.com/kaltura/nginx-vod-module.git nginx-vod-module && \ + git clone https://github.com/vozlt/nginx-module-vts.git nginx-module-vts && \ + git clone https://github.com/evanmiller/mod_zip.git mod-zip && \ + git clone https://github.com/alibaba/nginx-http-user-agent.git nginx-http-user-agent && \ + git clone https://github.com/youzee/nginx-unzip-module.git nginx-unzip-module && \ + git clone https://github.com/vladbondarenko/ngx_webp.git ngx-webp && \ + git clone https://github.com/openresty/xss-nginx-module.git xss-nginx-module && \ + git clone https://github.com/openresty/set-misc-nginx-module.git set-misc-nginx-module && \ + git clone https://github.com/arut/nginx-rtmp-module.git rtmp && \ + git clone https://github.com/kvspb/nginx-auth-ldap.git http-auth-ldap && \ + git clone https://github.com/simplresty/ngx_devel_kit.git http-ndk && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2location-c-7.0.0 && \ + git clone https://github.com/itoffshore/nginx-upstream-fair.git http-upstream-fair && \ + git clone https://github.com/yaoweibin/nginx_upstream_check_module.git nginx-upstream-check-module && \ + git clone https://github.com/openresty/lua-nginx-module http-lua + +################################################################## +# nginx compilling +################################################################## +RUN cd ${NGINX_SRC_DIR} && \ + ./configure \ + --sbin-path=/usr/sbin/nginx \ + --prefix=/usr/share/nginx \ + --conf-path=/etc/nginx/nginx.conf \ + --http-log-path=/var/log/nginx/access.log \ + --error-log-path=/var/log/nginx/error.log \ + --lock-path=/var/lock/nginx.lock \ + --pid-path=/run/nginx.pid \ + --modules-path=/usr/lib/nginx/modules \ + --http-client-body-temp-path=/var/lib/nginx/body \ + --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ + --http-proxy-temp-path=/var/lib/nginx/proxy \ + --http-scgi-temp-path=/var/lib/nginx/scgi \ + --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ + --with-cc-opt='-I/usr/local/include/luajit-2.1 -g -O2 -lz -fstack-protector-strong -Wformat -Wno-error=date-time -Wno-error=implicit-fallthrough= -Wno-error=cast-function-type -Wno-error=format-security -Wno-error=implicit-function-declaration -Wno-error=deprecated-declarations -Wno-error=unused-result -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' \ + --with-ld-opt='-Wl,-z,relro -Wl,-z,now -lz -fPIC -L/usr/local/lib' \ + --with-file-aio \ + --with-compat \ + --with-debug \ + --with-threads \ + --with-pcre-jit \ + --with-http_ssl_module \ + --with-http_stub_status_module \ + --with-http_realip_module \ + --with-http_auth_request_module \ + --with-http_v2_module \ + --with-http_dav_module \ + --with-http_slice_module \ + --with-http_addition_module \ + --with-http_flv_module \ + --with-http_geoip_module=dynamic \ + --with-http_gunzip_module \ + --with-http_gzip_static_module \ + --with-http_image_filter_module=dynamic \ + --with-http_mp4_module \ + --with-http_perl_module=dynamic \ + --with-http_random_index_module \ + --with-http_secure_link_module \ + --with-http_sub_module \ + --with-http_xslt_module=dynamic \ + --with-mail=dynamic \ + --with-mail_ssl_module \ + --with-stream=dynamic \ + --with-stream_ssl_module \ + --with-stream_ssl_preread_module \ + --add-dynamic-module=http-headers-more-filter \ + --add-dynamic-module=http-auth-pam \ + --add-dynamic-module=http-dav-ext \ + --add-dynamic-module=http-ndk \ + --add-dynamic-module=http-echo \ + --add-dynamic-module=http-fancyindex \ + --add-dynamic-module=nchan \ + --add-dynamic-module=http-uploadprogress \ + --add-dynamic-module=http-subs-filter \ + --add-dynamic-module=ssl-ct \ + --add-dynamic-module=http-geoip2 \ + --add-dynamic-module=spnego-http-auth-nginx-module \ + --add-dynamic-module=http-auth-ldap \ +# --add-dynamic-module=nginx-audio-track-for-hls-module \ + --add-dynamic-module=ip2location-nginx \ + --add-dynamic-module=nginx-vod-module \ +# --add-dynamic-module=nginx-module-vts \ + --add-dynamic-module=mod-zip \ + --add-dynamic-module=nginx-http-user-agent \ + --add-dynamic-module=nginx-unzip-module \ + --add-dynamic-module=ngx-webp \ + --add-dynamic-module=set-misc-nginx-module \ + --add-dynamic-module=rtmp \ + --add-dynamic-module=http-upstream-fair \ + --add-dynamic-module=nginx-upstream-check-module \ + --add-dynamic-module=http-lua && \ + cp -fv ${PRE_DIR}/nginx-description-pak ${NGINX_SRC_DIR}/description-pak && \ + fakeroot checkinstall -D --pakdir=/builds/export --maintainer="EpicMorg, developer@epicm.org" --pkgname=nginx-custom --install=no -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +################################################################## +# Installing nginx from deb +################################################################## +ADD pre/ngninx.pre.tar.gz / +COPY --from=builder /builds/export /tmp/deb +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + geoip-database \ + geoip-bin \ + libgeoip1 \ + libmaxminddb0 \ + libgd3 \ + libxslt1.1 && \ + dpkg --force-all -i /tmp/deb/*.deb && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /usr/lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /usr/lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /usr/lib/libIP2Location.so.5 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /lib/libIP2Location.so.5 && \ + ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log && \ + ln -sf /etc/ssl/dhparam.pem /etc/nginx/dhparam.pem && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /var/cache/apt/archives/*.deb && \ + rm -rf /tmp/deb/* && \ + rm -rf /builds/* && \ + rm -rf /valve/* + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/latest/main/Makefile b/linux/ecosystem/nginx/latest/main/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/latest/main/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/latest/main/README.md b/linux/ecosystem/nginx/latest/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/latest/main/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/latest/main/docker-compose.yml b/linux/ecosystem/nginx/latest/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/ecosystem/nginx/latest/main/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/latest/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/latest/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/ecosystem/nginx/latest/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/ecosystem/nginx/latest/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/latest/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/ecosystem/nginx/latest/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/ecosystem/nginx/latest/main/pre/nginx-description-pak b/linux/ecosystem/nginx/latest/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/ecosystem/nginx/latest/main/pre/nginx-description-pak @@ -0,0 +1 @@ +Custom build of Nginx with some modules by EpicMorg. \ No newline at end of file diff --git a/linux/ecosystem/nginx/latest/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/latest/main/pre/ngninx.pre.tar.gz new file mode 100644 index 000000000..bf9c27351 Binary files /dev/null and b/linux/ecosystem/nginx/latest/main/pre/ngninx.pre.tar.gz differ diff --git a/linux/ecosystem/nginx/latest/php/.env b/linux/ecosystem/nginx/latest/php/.env new file mode 100644 index 000000000..00230635f --- /dev/null +++ b/linux/ecosystem/nginx/latest/php/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=latest +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.3.tar.gz diff --git a/linux/ecosystem/nginx/latest/php/Dockerfile b/linux/ecosystem/nginx/latest/php/Dockerfile new file mode 100644 index 000000000..3b2664f17 --- /dev/null +++ b/linux/ecosystem/nginx/latest/php/Dockerfile @@ -0,0 +1,257 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 + +ARG P4API_VER=r20.1 +ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP7 +################################################################## +#installing php repo + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + smbclient libsmbclient libsmbclient-dev \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} + + +################################################################## +# compilling smbclient +################################################################## +RUN pecl install smbclient && \ + cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Installing php fpm for nginx from deb +################################################################## +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 +ARG PHP_VER=7.4 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini + +################################################################## +# Installing PHP7 +################################################################## +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi \ + php-pear \ + php7.4-gmp \ + php7.4-snmp \ + php7.4-ldap \ + php7.4-mail \ + php7.4-soap \ + php7.4-mysql \ + php7.4-memcached \ + php7.4-memcache \ + php7.4-igbinary \ + php7.4-interbase \ + php7.4-curl \ + php7.4-gd \ + php7.4-intl \ + php7.4-zip \ + php7.4-bcmath \ + php7.4-imap \ + php7.4-pspell \ + php7.4-sqlite3 \ + php7.4-tidy \ + php7.4-xmlrpc \ + php7.4-xml \ + php7.4-mbstring \ + php7.4-apcu \ + php7.4-common \ + php7.4-json \ + php7.4-readline \ + php7.4-enchant \ + php7.4-ssh2 \ + php7.4-oauth \ + php7.4-gmagick \ + php7.4-gnupg \ + php7.4-redis \ + smbclient libsmbclient \ +# php-smbclient \ + php7.4-yaml \ + php7.4-geoip \ + sendmail && \ + update-alternatives --set php /usr/bin/php7.4 && \ + phpenmod \ + snmp \ + gmp \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + gnupg \ + iconv \ + imap \ + json \ + mbstring \ + memcached \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} +RUN echo "extension=smbclient.so" > ${SMB_PHP_INI} && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ + php -m && \ + php -v + + + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/latest/php/Makefile b/linux/ecosystem/nginx/latest/php/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/latest/php/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/latest/php/README.md b/linux/ecosystem/nginx/latest/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/ecosystem/nginx/latest/php/README.md @@ -0,0 +1,30 @@ +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/latest/php/docker-compose.yml b/linux/ecosystem/nginx/latest/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/ecosystem/nginx/latest/php/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-php" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/latest/quic/.env b/linux/ecosystem/nginx/latest/quic/.env new file mode 100644 index 000000000..d5ad4e3df --- /dev/null +++ b/linux/ecosystem/nginx/latest/quic/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=quic +NGINX_DOWNLOAD_URL=https://github.com/VKCOM/nginx-quic/archive/refs/heads/master.tar.gz diff --git a/linux/ecosystem/nginx/latest/quic/Dockerfile b/linux/ecosystem/nginx/latest/quic/Dockerfile new file mode 100644 index 000000000..d7bb918cf --- /dev/null +++ b/linux/ecosystem/nginx/latest/quic/Dockerfile @@ -0,0 +1,26 @@ +FROM nginx AS build + +WORKDIR /src +RUN apt-get update && \ + apt-get install -y git gcc make g++ cmake perl libunwind-dev golang && \ + git clone https://boringssl.googlesource.com/boringssl && \ + mkdir boringssl/build && \ + cd boringssl/build && \ + cmake .. && \ + make + +RUN apt-get install -y mercurial libperl-dev libpcre3-dev zlib1g-dev libxslt1-dev libgd-ocaml-dev libgeoip-dev && \ + hg clone https://hg.nginx.org/nginx-quic && \ + hg clone http://hg.nginx.org/njs && \ + cd nginx-quic && \ + hg update quic && \ + auto/configure `nginx -V 2>&1 | sed "s/ \-\-/ \\\ \n\t--/g" | grep "\-\-" | grep -ve opt= -e param= -e build=` \ + --build=nginx-quic --with-debug \ + --with-http_v3_module --with-http_quic_module --with-stream_quic_module \ + --with-cc-opt="-I/src/boringssl/include" --with-ld-opt="-L/src/boringssl/build/ssl -L/src/boringssl/build/crypto" && \ + make + +FROM nginx +COPY --from=build /src/nginx-quic/objs/nginx /usr/sbin +RUN /usr/sbin/nginx -V > /dev/stderr +EXPOSE 80 443 diff --git a/linux/ecosystem/nginx/latest/quic/Dockerfile.experimental b/linux/ecosystem/nginx/latest/quic/Dockerfile.experimental new file mode 100644 index 000000000..da1919e7c --- /dev/null +++ b/linux/ecosystem/nginx/latest/quic/Dockerfile.experimental @@ -0,0 +1,325 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG PRE_DIR=${BUILDS_DIR}/pre +ARG BSSL_SRC_DIR=${SRC_DIR}/boringssl +ARG NGINX_SRC_DIR=${SRC_DIR}/nginx +ARG NGINX_VERSION +ARG NGINX_DOWNLOAD_URL +ARG LUAJIT_INC=/usr/local/include/luajit-2.1 +ARG LUAJIT_LIB=/usr/local/lib +ARG DCMAKE_BUILD_TYPE=Release + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${PRE_DIR} ${NGINX_SRC_DIR} /usr/lib/nginx +ADD pre/luajit2-description-pak ${PRE_DIR} +ADD pre/nginx-description-pak ${PRE_DIR} +ADD pre/ip2location-description-pak ${PRE_DIR} +ADD pre/boringssl-build.sh ${SRC_DIR} + +################################################################## +# IP2Location support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2 && \ + cp -fv ${PRE_DIR}/ip2location-description-pak ${SRC_DIR}/ip2/description-pak && \ + cd ${SRC_DIR}/ip2 && \ + ls -las && \ + autoreconf -i -v --force && \ + aclocal && \ + automake --gnu --add-missing && \ + autoconf && \ + autoreconf -i -v --force && \ + ./configure && \ + ls -las && \ + make clean && \ + make && \ + make -C data convert && \ + make check && \ + ls -las && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=ip2-custom --conflicts=ip2 --install=yes -y && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + dpkg --force-all -i ${EXPORT_DIR}/*.deb + +################################################################## +# luaJIT 2 support for prod nginx module +################################################################## +RUN cd ${SRC_DIR} && \ + git clone https://github.com/openresty/luajit2.git luajit2 && \ + cp -fv ${PRE_DIR}/luajit2-description-pak ${SRC_DIR}/luajit2/description-pak && \ + cd ${SRC_DIR}/luajit2 && \ + make && \ + make install && \ + fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=luajit2-custom --conflicts=luajit2 --install=no -y + + +################################################################## +# BotingSSL - google fork with quic +################################################################## + +# compile from sources +RUN cd ${SRC_DIR} && \ + ./boringssl-build.sh + +# git clone https://github.com/google/boringssl.git boringssl && \ +# apt-get update && \ +# apt-get install -y git gcc make g++ cmake perl libunwind-dev golang && \ +# cd boringssl && \ +# mkdir build && \ +# cd build && \ +# pwd && \ +# cmake .. && \ +# make +# cmake -GNinja .. && \ +# ninja +# cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -GNinja .. && \ +# ninja +# cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 .. && \ +# make + +# Make an .openssl directory for nginx and then symlink BoringSSL's include directory tree +#RUN mkdir -p ${BSSL_SRC_DIR}/.openssl/lib && \ +# ln -sf ${BSSL_SRC_DIR}/include ${BSSL_SRC_DIR}/.openssl/include + +# Copy the BoringSSL crypto libraries to .openssl/lib so nginx can find them +#RUN cp -rfv ${BSSL_SRC_DIR}/build/crypto/libcrypto.a ${BSSL_SRC_DIR}/.openssl/lib && \ +# cp -rfv ${BSSL_SRC_DIR}/build/ssl/libssl.a ${BSSL_SRC_DIR}/.openssl/lib + +# Fix "Error 127" during build +#RUN touch ${BSSL_SRC_DIR}/include/openssl/ssl.h +#RUN touch ${BSSL_SRC_DIR}/.openssl/include/openssl/ssl.h + + +################################################################## +# quictls/openssl - community fork with quic +################################################################## + +#RUN printf "\n--------------------------------\nPreinstlalled openssl version is: $(openssl version)\n--------------------------------\n\n" +#RUN cd ${SRC_DIR} && \ +# git clone https://github.com/quictls/openssl.git openssl && \ +# cd openssl && \ +# pwd && \ +# ./Configure +# && \ +# make && \ +# make test +# && \ +# make install + +#RUN printf "\n--------------------------------\nCurrent openssl version is: $(openssl version)\n--------------------------------\n\n" + +#RUN openssl fipsinstall + +#RUN openssl version + +################################################################## +# nginx preparing +################################################################## +#RUN wget -qO - ${NGINX_DOWNLOAD_URL} | tar -zxv --strip-components=1 -C ${NGINX_SRC_DIR} && \ +RUN cd ${SRC_DIR} && \ + hg clone https://hg.nginx.org/nginx-quic nginx && \ + cd ${NGINX_SRC_DIR} && \ + hg update quic && \ + hg clone http://hg.nginx.org/njs && \ + git clone https://github.com/openresty/headers-more-nginx-module.git http-headers-more-filter && \ + git clone https://github.com/sto/ngx_http_auth_pam_module.git http-auth-pam && \ + git clone https://github.com/arut/nginx-dav-ext-module.git http-dav-ext && \ + git clone https://github.com/openresty/echo-nginx-module.git http-echo && \ + git clone https://github.com/aperezdc/ngx-fancyindex.git http-fancyindex && \ + git clone https://github.com/slact/nchan.git nchan && \ + git clone https://github.com/masterzen/nginx-upload-progress-module.git http-uploadprogress && \ + git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module http-subs-filter && \ + git clone https://github.com/grahamedgecombe/nginx-ct.git ssl-ct && \ + git clone https://github.com/stnoonan/spnego-http-auth-nginx-module.git spnego-http-auth-nginx-module && \ + git clone https://github.com/leev/ngx_http_geoip2_module http-geoip2 && \ + git clone https://github.com/flavioribeiro/nginx-audio-track-for-hls-module.git nginx-audio-track-for-hls-module && \ + git clone https://github.com/chrislim2888/ip2location-nginx.git ip2location-nginx && \ + git clone https://github.com/kaltura/nginx-vod-module.git nginx-vod-module && \ + git clone https://github.com/vozlt/nginx-module-vts.git nginx-module-vts && \ + git clone https://github.com/evanmiller/mod_zip.git mod-zip && \ + git clone https://github.com/alibaba/nginx-http-user-agent.git nginx-http-user-agent && \ + git clone https://github.com/youzee/nginx-unzip-module.git nginx-unzip-module && \ + git clone https://github.com/vladbondarenko/ngx_webp.git ngx-webp && \ + git clone https://github.com/openresty/xss-nginx-module.git xss-nginx-module && \ + git clone https://github.com/openresty/set-misc-nginx-module.git set-misc-nginx-module && \ + git clone https://github.com/arut/nginx-rtmp-module.git rtmp && \ + git clone https://github.com/kvspb/nginx-auth-ldap.git http-auth-ldap && \ + git clone https://github.com/simplresty/ngx_devel_kit.git http-ndk && \ + git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2location-c-7.0.0 && \ + git clone https://github.com/itoffshore/nginx-upstream-fair.git http-upstream-fair && \ + git clone https://github.com/yaoweibin/nginx_upstream_check_module.git nginx-upstream-check-module && \ + git clone https://github.com/openresty/lua-nginx-module http-lua + +################################################################## +# nginx compilling +################################################################## +RUN cd ${NGINX_SRC_DIR} && \ + ./auto/configure `nginx -V 2>&1 | sed "s/ \-\-/ \\\ \n\t--/g" | grep "\-\-" | grep -ve opt= -e param= -e build=` \ + --build=nginx-quic \ + --add-module=./njs/nginx \ + --with-openssl=/builds/src/boringssl \ + --with-http_v3_module \ + --with-http_quic_module \ + --with-stream_quic_module \ + --sbin-path=/usr/sbin/nginx \ + --prefix=/usr/share/nginx \ + --conf-path=/etc/nginx/nginx.conf \ + --http-log-path=/var/log/nginx/access.log \ + --error-log-path=/var/log/nginx/error.log \ + --lock-path=/var/lock/nginx.lock \ + --pid-path=/run/nginx.pid \ + --modules-path=/usr/lib/nginx/modules \ + --http-client-body-temp-path=/var/lib/nginx/body \ + --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ + --http-proxy-temp-path=/var/lib/nginx/proxy \ + --http-scgi-temp-path=/var/lib/nginx/scgi \ + --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ +# --with-cc-opt='-I/usr/local/include/luajit-2.1 -I/builds/src/nginx/boringssl/include -g -O2 -lz -fstack-protector-strong -Wformat -Wno-error=date-time -Wno-error=implicit-fallthrough= -Wno-error=cast-function-type -Wno-error=format-security -Wno-error=implicit-function-declaration -Wno-error=deprecated-declarations -Wno-error=unused-result -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' \ +# --with-ld-opt='-Wl,-z,relro -Wl,-z,now -lz -fPIC -L/usr/local/lib -L /builds/src/nginx/boringssl/build/ssl -L/builds/src/nginx/boringssl/build/crypto' \ + --with-cc-opt='-I/usr/local/include/luajit-2.1 -I/builds/src/boringssl/include -g -O2 -lz -fstack-protector-strong -Wformat -Wno-error=date-time -Wno-error=implicit-fallthrough= -Wno-error=cast-function-type -Wno-error=format-security -Wno-error=implicit-function-declaration -Wno-error=deprecated-declarations -Wno-error=unused-result -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' \ + --with-ld-opt='-Wl,-z,relro -Wl,-z,now -lz -fPIC -L/builds/src/boringssl/build/ssl -L/builds/src/boringssl/build/crypto' \ + --with-file-aio \ + --with-compat \ + --with-debug \ + --with-threads \ + --with-pcre-jit \ + --with-http_ssl_module \ + --with-http_stub_status_module \ + --with-http_realip_module \ + --with-http_auth_request_module \ + --with-http_v2_module \ + --with-http_dav_module \ + --with-http_slice_module \ + --with-http_addition_module \ + --with-http_flv_module \ + --with-http_geoip_module=dynamic \ + --with-http_gunzip_module \ + --with-http_gzip_static_module \ + --with-http_image_filter_module=dynamic \ + --with-http_mp4_module \ + --with-http_perl_module=dynamic \ + --with-http_random_index_module \ + --with-http_secure_link_module \ + --with-http_sub_module \ + --with-http_xslt_module=dynamic \ + --with-mail=dynamic \ + --with-mail_ssl_module \ + --with-stream=dynamic \ + --with-stream_ssl_module \ + --with-stream_ssl_preread_module \ + --add-dynamic-module=http-headers-more-filter \ + --add-dynamic-module=http-auth-pam \ + --add-dynamic-module=http-dav-ext \ + --add-dynamic-module=http-ndk \ + --add-dynamic-module=http-echo \ + --add-dynamic-module=http-fancyindex \ + --add-dynamic-module=nchan \ + --add-dynamic-module=http-uploadprogress \ + --add-dynamic-module=http-subs-filter \ + --add-dynamic-module=ssl-ct \ + --add-dynamic-module=http-geoip2 \ + --add-dynamic-module=spnego-http-auth-nginx-module \ + --add-dynamic-module=http-auth-ldap \ +# --add-dynamic-module=nginx-audio-track-for-hls-module \ + --add-dynamic-module=ip2location-nginx \ + --add-dynamic-module=nginx-vod-module \ +# --add-dynamic-module=nginx-module-vts \ + --add-dynamic-module=mod-zip \ + --add-dynamic-module=nginx-http-user-agent \ + --add-dynamic-module=nginx-unzip-module \ + --add-dynamic-module=ngx-webp \ + --add-dynamic-module=set-misc-nginx-module \ + --add-dynamic-module=rtmp \ + --add-dynamic-module=http-upstream-fair \ + --add-dynamic-module=nginx-upstream-check-module \ + --add-dynamic-module=http-lua && \ + cp -fv ${PRE_DIR}/nginx-description-pak ${NGINX_SRC_DIR}/description-pak && \ +# dpkg-buildpackage -b && \ + make && \ +# fakeroot checkinstall -D --pakdir=/builds/export --maintainer="EpicMorg, developer@epicm.org" --pkgname=nginx-custom --install=no -y && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# LDAP Fix +################################################################## +RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf + +################################################################## +# Installing nginx from deb +################################################################## +ADD pre/ngninx.pre.tar.gz / +COPY --from=builder /builds/export /tmp/deb +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + geoip-database \ + geoip-bin \ + libgeoip1 \ + libmaxminddb0 \ + libgd3 \ + libxslt1.1 && \ + dpkg --force-all -i /tmp/deb/*.deb && \ + ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /usr/lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /usr/lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /usr/lib/libIP2Location.so.5 && \ + ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ + ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ + ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ + ln -s /usr/local/lib/libIP2Location.so.3 /lib/libIP2Location.so.3 && \ + ln -s /usr/local/lib/libIP2Location.so.4 /lib/libIP2Location.so.4 && \ + ln -s /usr/local/lib/libIP2Location.so.5 /lib/libIP2Location.so.5 && \ + ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log && \ + ln -sf /etc/ssl/dhparam.pem /etc/nginx/dhparam.pem && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rf /var/lib/apt/lists/* && \ + rm -rf /var/cache/apt/archives/*.deb && \ + rm -rf /tmp/deb/* && \ + rm -rf /builds/* && \ + rm -rf /valve/* && \ + rm -rfv /tmp/* + +#Final config +VOLUME ["/var/cache/nginx"] +EXPOSE 80 443 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/latest/quic/Makefile b/linux/ecosystem/nginx/latest/quic/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/latest/quic/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/latest/quic/README.md b/linux/ecosystem/nginx/latest/quic/README.md new file mode 100644 index 000000000..49377400f --- /dev/null +++ b/linux/ecosystem/nginx/latest/quic/README.md @@ -0,0 +1,291 @@ +# nginx quic + +Experimental QUIC support for nginx +----------------------------------- + +1. Introduction +2. Installing +3. Configuration +4. Clients +5. Troubleshooting +6. Contributing +7. Links + +1. Introduction + + This is an experimental QUIC [1] / HTTP/3 [2] support for nginx. + + The code is developed in a separate "quic" branch available + at https://hg.nginx.org/nginx-quic. Currently it is based + on nginx mainline 1.21.x. We merge new nginx releases into + this branch regularly. + + The project code base is under the same BSD license as nginx. + + The code is currently at a beta level of quality and should not + be used in production. + + We are working on improving HTTP/3 support with the goal of + integrating it to the main NGINX codebase. Expect frequent + updates of this code and don't rely on it for whatever purpose. + + We'll be grateful for any feedback and code submissions however + we don't bear any responsibilities for any issues with this code. + + You can always contact us via nginx-devel mailing list [3]. + + What works now: + + Currently we support IETF-QUIC draft-29 through final RFC documents. + Earlier drafts are NOT supported as they have incompatible wire format. + + nginx should be able to respond to HTTP/3 requests over QUIC and + it should be possible to upload and download big files without errors. + + + The handshake completes successfully + + One endpoint can update keys and its peer responds correctly + + 0-RTT data is being received and acted on + + Connection is established using TLS Resume Ticket + + A handshake that includes a Retry packet completes successfully + + Stream data is being exchanged and ACK'ed + + An H3 transaction succeeded + + One or both endpoints insert entries into dynamic table and + subsequently reference them from header blocks + + Version Negotiation packet is sent to client with unknown version + + Lost packets are detected and retransmitted properly + + Clients may migrate to new address + + Not (yet) supported features: + + - Explicit Congestion Notification (ECN) as specified in quic-recovery [5] + - A connection with the spin bit succeeds and the bit is spinning + - Structured Logging + + Since the code is experimental and still under development, + a lot of things may not work as expected, for example: + + - Flow control mechanism is basic and intended to avoid CPU hog and make + simple interactions possible + + - Not all protocol requirements are strictly followed; some of checks are + omitted for the sake of simplicity of initial implementation + +2. Installing + + You will need a BoringSSL [4] library that provides QUIC support + + $ hg clone -b quic https://hg.nginx.org/nginx-quic + $ cd nginx-quic + $ ./auto/configure --with-debug --with-http_v3_module \ + --with-cc-opt="-I../boringssl/include" \ + --with-ld-opt="-L../boringssl/build/ssl \ + -L../boringssl/build/crypto" + $ make + + When configuring nginx, you can enable QUIC and HTTP/3 using the + following new configuration options: + + --with-http_v3_module - enable QUIC and HTTP/3 + --with-http_quic_module - enable QUIC for older HTTP versions + --with-stream_quic_module - enable QUIC in Stream + +3. Configuration + + The HTTP "listen" directive got two new options: "http3" and "quic". + The "http3" option enables HTTP/3 over QUIC on the specified port. + The "quic" option enables QUIC for older HTTP versions on this port. + + The Stream "listen" directive got a new option "quic" which enables + QUIC as client transport protocol instead of TCP or plain UDP. + + Along with "http3" or "quic", you also have to specify "reuseport" + option [6] to make it work properly with multiple workers. + + A number of directives were added that specify transport parameter values: + + quic_max_idle_timeout + quic_max_ack_delay + quic_max_udp_payload_size + quic_initial_max_data + quic_initial_max_stream_data_bidi_local + quic_initial_max_stream_data_bidi_remote + quic_initial_max_stream_data_uni + quic_initial_max_streams_bidi + quic_initial_max_streams_uni + quic_ack_delay_exponent + quic_disable_active_migration + quic_active_connection_id_limit + + To enable address validation: + + quic_retry on; + + To enable 0-RTT: + + ssl_early_data on; + + Make sure that TLS 1.3 is configured which is required for QUIC: + + ssl_protocols TLSv1.3; + + To enable GSO (Generic Segmentation Offloading): + + quic_gso on; + + By default this Linux-specific optimization [8] is disabled. + Enable if your network interface is configured to support GSO. + + A number of directives were added that configure HTTP/3: + + http3_max_table_capacity + http3_max_blocked_streams + http3_max_concurrent_pushes + http3_push + http3_push_preload + + An additional variable is available: $quic. + The value of $quic is "quic" if QUIC connection is used, + or an empty string otherwise. + +Example configuration: + + http { + log_format quic '$remote_addr - $remote_user [$time_local] ' + '"$request" $status $body_bytes_sent ' + '"$http_referer" "$http_user_agent" "$quic"'; + + access_log logs/access.log quic; + + server { + # for better compatibility it's recommended + # to use the same port for quic and https + listen 8443 http3 reuseport; + listen 8443 ssl; + + ssl_certificate certs/example.com.crt; + ssl_certificate_key certs/example.com.key; + ssl_protocols TLSv1.3; + + location / { + # required for browsers to direct them into quic port + add_header Alt-Svc 'h3=":8443"; ma=86400'; + } + } + } + +4. Clients + + * Browsers + + Known to work: Firefox 80+ and Chrome 85+ (QUIC draft 29+) + + Beware of strange issues: sometimes browser may decide to ignore QUIC + Cache clearing/restart might help. Always check access.log and + error.log to make sure you are using HTTP/3 and not TCP https. + + + to enable QUIC in Firefox, set the following in 'about:config': + network.http.http3.enabled = true + + + to enable QUIC in Chrome, enable it on command line and force it + on your site: + + $ ./chrome --enable-quic --quic-version=h3-29 \ + --origin-to-force-quic-on=example.com:8443 + + * Console clients + + Known to work: ngtcp2, firefox's neqo and chromium's console clients: + + $ examples/client 127.0.0.1 8443 https://example.com:8443/index.html + + $ ./neqo-client https://127.0.0.1:8443/ + + $ chromium-build/out/my_build/quic_client http://example.com:8443 \ + --quic_version=h3-29 \ + --allow_unknown_root_cert \ + --disable_certificate_verification + + + If you've got it right, in the access log you should see something like: + + 127.0.0.1 - - [24/Apr/2020:11:27:29 +0300] "GET / HTTP/3" 200 805 "-" + "nghttp3/ngtcp2 client" "quic" + + +5. Troubleshooting + + Here are some tips that may help you to identify problems: + + + Ensure you are building with proper SSL library that supports QUIC + + + Ensure you are using the proper SSL library in runtime + (`nginx -V` will show you what you are using) + + + Ensure your client is actually sending QUIC requests + (see "Clients" section about browsers and cache) + + We recommend to start with simple console client like ngtcp2 + to ensure you've got server configured properly before trying + with real browsers that may be very picky with certificates, + for example. + + + Build nginx with debug support [7] and check your debug log. + It should contain all details about connection and why it + failed. All related messages contain "quic " prefix and can + be easily filtered out. + + + If you want to investigate deeper, you may want to enable + additional debugging in src/event/quic/ngx_event_quic_connection.h: + + #define NGX_QUIC_DEBUG_PACKETS + #define NGX_QUIC_DEBUG_FRAMES + #define NGX_QUIC_DEBUG_ALLOC + #define NGX_QUIC_DEBUG_CRYPTO + +6. Contributing + + If you are willing to contribute, please refer to + http://nginx.org/en/docs/contributing_changes.html + +7. Links + + [1] https://datatracker.ietf.org/doc/html/rfc9000 + [2] https://datatracker.ietf.org/doc/html/draft-ietf-quic-http + [3] https://mailman.nginx.org/mailman/listinfo/nginx-devel + [4] https://boringssl.googlesource.com/boringssl/ + [5] https://datatracker.ietf.org/doc/html/rfc9002 + [6] https://nginx.org/en/docs/http/ngx_http_core_module.html#listen + [7] https://nginx.org/en/docs/debugging_log.html + [8] http://vger.kernel.org/lpc_net2018_talks/willemdebruijn-lpc2018-udpgso-paper-DRAFT-1.pdf + + +# Compose example + +```yml +version: '3.7' +services: + balancer: + image: epicmorg/balancer + restart: unless-stopped + ports: + - "0.0.0.0:80:80" + - "0.0.0.0:443:443" + volumes: + - /etc/localtime:/etc/localtime + - /etc/timezone:/etc/timezone + - /etc/letsencrypt:/etc/letsencrypt + - nginx:/etc/nginx + - nginx-usr:/usr/share/nginx/html + - /var/lib/nginx +# extra_hosts: +# - "example.com:192.168.0.11" + depends_on: + - websites + tmpfs: + - /tmp +volumes: + nginx: + external: true + nginx-usr: + external: true +``` diff --git a/linux/ecosystem/nginx/latest/quic/docker-compose.yml b/linux/ecosystem/nginx/latest/quic/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/ecosystem/nginx/latest/quic/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/latest/quic/pre/boringssl-build.sh b/linux/ecosystem/nginx/latest/quic/pre/boringssl-build.sh new file mode 100755 index 000000000..3232503e9 --- /dev/null +++ b/linux/ecosystem/nginx/latest/quic/pre/boringssl-build.sh @@ -0,0 +1,111 @@ +#!/bin/sh +WORKDIRECTORY=$PWD +ARCH=$(uname -m) +if command -v git > /dev/null 2>&1; then + echo "Checking git: OK" +else + echo "Checking git: FAILED, please install git" + exit 1 +fi + +if command -v cmake > /dev/null 2>&1; then + echo "Checking cmake: OK" +else + echo "Checking cmake: FAILED, please install cmake" + exit 1 +fi + +if command -v curl > /dev/null 2>&1; then + echo "Checking curl: OK" +else + echo "Checking curl: FAILED, please install curl" + exit 1 +fi + +if [ -d $WORKDIRECTORY/go ]; then +PATH=$WORKDIRECTORY/go/bin:$PATH +GOROOT=$WORKDIRECTORY/go +if [ -z $GOROOT ];then +NO_GOROOT_SYSTEM=true +fi +else +if [ -z $GOROOT ];then +if [ "$ARCH" = "x86_64" ]; then +GOURL="https://dl.google.com/go/$(curl https://golang.org/VERSION?m=text).linux-amd64.tar.gz" +fi +if [ "$ARCH" = "i386" ]; then +GOURL="https://dl.google.com/go/$(curl https://golang.org/VERSION?m=text).linux-386.tar.gz" +fi +if [ "$ARCH" = "armv6l" ]; then +GOURL="https://dl.google.com/go/$(curl https://golang.org/VERSION?m=text).linux-armv6l.tar.gz" +fi +if [ "$ARCH" = "armv7l" ]; then +GOURL="https://dl.google.com/go/$(curl https://golang.org/VERSION?m=text).linux-armv6l.tar.gz" +fi +if [ "$ARCH" = "" ]; then +echo "Your architecture is not supported" +fi +echo "Downloading golang" +curl -so $WORKDIRECTORY/go.tar.gz $GOURL +tar -xzf $WORKDIRECTORY/go.tar.gz +rm -rf $WORKDIRECTORY/go.tar.gz +PATH=$WORKDIRECTORY/go/bin:$PATH +GOROOT=$WORKDIRECTORY/go +NO_GOROOT_SYSTEM=true +fi +fi + +NETWORK_CHECK=$(curl -I -s --connect-timeout 5 https://github.com -w %{http_code} | tail -n1) + +if [ -d $WORKDIRECTORY/boringssl ]; then +cd $WORKDIRECTORY/boringssl +git pull +git reset --hard origin/master +git am $WORKDIRECTORY/*.patch +rm -rf $WORKDIRECTORY/boringssl/build +rm -rf $WORKDIRECTORY/boringssl/build2 +rm -rf $WORKDIRECTORY/boringssl/.openssl +else +if [ "$NETWORK_CHECK" = "200" ]; then + git clone --depth 1 https://github.com/google/boringssl.git $WORKDIRECTORY/boringssl + cd $WORKDIRECTORY/boringssl + git am $WORKDIRECTORY/*.patch +else + echo "Unable to connect to GitHub, please check your Internet availability" + exit 1 +fi +fi + +mkdir $WORKDIRECTORY/boringssl/build +cd $WORKDIRECTORY/boringssl/build +echo "Building Static libraries" +cmake .. -DCMAKE_BUILD_TYPE=Release +make -j`nproc` +mkdir $WORKDIRECTORY/boringssl/build2 +cd $WORKDIRECTORY/boringssl/build2 +echo "Building Shared objects" +cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1 +make -j`nproc` +mkdir $WORKDIRECTORY/boringssl/.openssl +mkdir $WORKDIRECTORY/boringssl/.openssl/include +mkdir $WORKDIRECTORY/boringssl/.openssl/include/openssl +cd $WORKDIRECTORY/boringssl/.openssl/include/openssl +ln $WORKDIRECTORY/boringssl/include/openssl/* . +mkdir $WORKDIRECTORY/boringssl/.openssl/lib +mkdir $WORKDIRECTORY/boringssl/lib +cp $WORKDIRECTORY/boringssl/build/crypto/libcrypto.a $WORKDIRECTORY/boringssl/.openssl/lib/libcrypto.a +cp $WORKDIRECTORY/boringssl/build/ssl/libssl.a $WORKDIRECTORY/boringssl/.openssl/lib/libssl.a +cp $WORKDIRECTORY/boringssl/build2/crypto/libcrypto.so $WORKDIRECTORY/boringssl/.openssl/lib/libcrypto.so +cp $WORKDIRECTORY/boringssl/build2/ssl/libssl.so $WORKDIRECTORY/boringssl/.openssl/lib/libssl.so + +echo "If you want to compile nginx" +echo "git am nginx-boringssl/*.patch in nginx source directory" +echo "and" +echo "Configure nginx with \"--with-openssl=$WORKDIRECTORY/boringssl\". Use nginx version >= 1.15 for best result." +echo "" +#if [ "$NO_GOROOT_SYSTEM" = "true" ]; then +#echo "Runing" +#echo "export PATH=$WORKDIRECTORY/go/bin:\$PATH" +#echo "export GOROOT=$WORKDIRECTORY/go" +#echo "If you want to compile nginx" +#fi diff --git a/linux/ecosystem/nginx/latest/quic/pre/ip2location-description-pak b/linux/ecosystem/nginx/latest/quic/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/ecosystem/nginx/latest/quic/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/ecosystem/nginx/latest/quic/pre/luajit2-description-pak b/linux/ecosystem/nginx/latest/quic/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/ecosystem/nginx/latest/quic/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/ecosystem/nginx/latest/quic/pre/nginx-description-pak b/linux/ecosystem/nginx/latest/quic/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/ecosystem/nginx/latest/quic/pre/nginx-description-pak @@ -0,0 +1 @@ +Custom build of Nginx with some modules by EpicMorg. \ No newline at end of file diff --git a/linux/ecosystem/nginx/latest/quic/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/latest/quic/pre/ngninx.pre.tar.gz new file mode 100644 index 000000000..bf9c27351 Binary files /dev/null and b/linux/ecosystem/nginx/latest/quic/pre/ngninx.pre.tar.gz differ diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/.env b/linux/ecosystem/nginx/latest/rtmp-hls/.env new file mode 100644 index 000000000..00230635f --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=latest +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.3.tar.gz diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/latest/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/Dockerfile @@ -0,0 +1,127 @@ +################################################################## +# Set Global ARG to build process +################################################################## +ARG NGINX_VERSION + +################################################################## +# Start build process +################################################################## +FROM epicmorg/nginx:${NGINX_VERSION} +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG NGINX_RTMP_MODULE_VERSION=1.2.1 + +################################################################## +# Clear sources.list.d +################################################################## +RUN rm -rfv /etc/apt/sources.list.d/* + +################################################################## +# sid sources list +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN apt update + +################################################################## +# installing utils +################################################################## +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libpcre3-dev \ + librtmp1 \ + libtheora0 \ + libvorbis-dev \ + libmp3lame0 \ + libx264-dev \ + libx265-dev + + +################################################################## +# stretch sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.stretch.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx4 + + +################################################################## +# buster sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.buster.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx5 + + +################################################################## +# sid sources list + libvpx +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.list.d/sources.sid.list /etc/apt/sources.list +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ + apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libvpx6 + + +################################################################## +# installing deps for rtmp module +################################################################## +RUN mkdir -p /usr/share/nginx/html \ + /mnt/hls \ + /mnt/dash \ + /tmp/build && \ + chown -R www-data:www-data /mnt/hls && \ + chown -R www-data:www-data /mnt/dash && \ + chmod -R 755 /mnt/hls && \ + chmod -R 755 /mnt/dash && \ + cd /tmp/build && \ + wget https://github.com/arut/nginx-rtmp-module/archive/v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + tar -zxf v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + rm v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ + cp /tmp/build/nginx-rtmp-module-${NGINX_RTMP_MODULE_VERSION}/stat.xsl /usr/share/nginx/html/stat.xsl && \ + rm -rf /tmp/build + + +################################################################## +# Forward logs to Docker +################################################################## +RUN ln -sf /dev/stdout /var/log/nginx/access.log && \ + ln -sf /dev/stderr /var/log/nginx/error.log + + +################################################################## +# Copy nginx config file to container +################################################################## +RUN rm -rfv /etc/nginx/nginx.conf \ + /etc/nginx/sites-avalible/default +COPY conf/nginx.conf /etc/nginx/nginx.conf + + +################################################################## +# Copy html players to container +################################################################## +COPY players /usr/share/nginx/html/players + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + + +EXPOSE 1935 +EXPOSE 8080 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/Makefile b/linux/ecosystem/nginx/latest/rtmp-hls/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/README.md b/linux/ecosystem/nginx/latest/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/README.md @@ -0,0 +1,78 @@ +# RTMP-HLS Docker + +**BASED ON** [TareqAlqutami/rtmp-hls-server](https://github.com/TareqAlqutami/rtmp-hls-server) + +**Docker image for video streaming server that supports RTMP, HLS, and DASH streams.** + +## Description + +This Docker image can be used to create a video streaming server that supports [**RTMP**](https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol), [**HLS**](https://en.wikipedia.org/wiki/HTTP_Live_Streaming), [**DASH**](https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP) out of the box. +It also allows adaptive streaming and custom transcoding of video streams. +All modules are built from source on Debian and Alpine Linux base images. + +## Features + * The backend is [**Nginx**](http://nginx.org/en/) with [**nginx-rtmp-module**](https://github.com/arut/nginx-rtmp-module). + * [**FFmpeg**](https://www.ffmpeg.org/) for transcoding and adaptive streaming. + * Default settings: + * RTMP is ON + * HLS is ON (adaptive, 5 variants) + * DASH is ON + * Other Nginx configuration files are also provided to allow for RTMP-only streams or no-FFmpeg transcoding. + * Statistic page of RTMP streams at `http://:/stats`. + * Available web video players (based on [video.js](https://videojs.com/) and [hls.js](https://github.com/video-dev/hls.js/)) at `/usr/share/nginx/html/players`. + +## Usage + +### To run the server +``` +docker run -d -p 1935:1935 -p 8080:8080 epicmorg/balancer:rtmp-hls +``` + +To run with custom conf file: +``` +docker run -d -p 1935:1935 -p 8080:8080 -v custom.conf:/etc/nginx/nginx.conf epicmorg/balancer:rtmp-hls +``` +where `custom.conf` is the new conf file for Nginx. + +### To stream to the server + * **Stream live RTMP content to:** + ``` + rtmp://:1935/live/ + ``` + where `` is any stream key you specify. + + * **Configure [OBS](https://obsproject.com/) to stream content:**
+Go to Settings > Stream, choose the following settings: + * Service: Custom Streaming Server. + * Server: `rtmp://:1935/live`. + * Stream key: anything you want, however provided video players assume stream key is `test` + +### To view the stream + * **Using [VLC](https://www.videolan.org/vlc/index.html):** + * Go to Media > Open Network Stream. + * Enter the streaming URL: `rtmp://:1935/live/` + Replace `` with the IP of where the server is running, and + `` with the stream key you used when setting up the stream. + * For HLS and DASH, the URLs are of the forms: + `http://:8080/hls/.m3u8` and + `http://:8080/dash/_src.mpd` respectively. + * Click Play. + +* **Using provided web players:**
+The provided demo players assume the stream-key is called `test` and the player is opened in localhost. + * To play RTMP content (requires Flash): `http://localhost:8080/players/rtmp.html` + * To play HLS content: `http://localhost:8080/players/hls.html` + * To play HLS content using hls.js library: `http://localhost:8080/players/hls_hlsjs.html` + * To play DASH content: `http://localhost:8080/players/dash.html` + * To play RTMP and HLS contents on the same page: `http://localhost:8080/players/rtmp_hls.html` + + **Notes:** + + * These web players are hardcoded to play stream key "test" at localhost. + * To change the stream source for these players. Download the html files and modify the `src` attribute in the video tag in the html file. You can then mount the modified files to the container as follows: + ``` + docker run -d -p 1935:1935 -p 8080:8080 -v custom_players:/usr/share/nginx/html/players epicmorg/balancer:rtmp-hls + ``` + where `custom_players` is the directory holding the modified html files. + + diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/latest/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/conf/nginx.conf @@ -0,0 +1,134 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + + # for each received stream, transcode for adaptive streaming + # This single ffmpeg command takes the input and transforms + # the source into 4 different streams with different bitrates + # and qualities. # these settings respect the aspect ratio. + exec_push /usr/bin/ffmpeg -i rtmp://localhost:1935/$app/$name -async 1 -vsync -1 + -c:v libx264 -c:a aac -b:v 256k -b:a 64k -vf "scale=480:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_low + -c:v libx264 -c:a aac -b:v 768k -b:a 128k -vf "scale=720:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_mid + -c:v libx264 -c:a aac -b:v 1024k -b:a 128k -vf "scale=960:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_high + -c:v libx264 -c:a aac -b:v 1920k -b:a 128k -vf "scale=1280:trunc(ow/a/2)*2" -tune zerolatency -preset superfast -crf 23 -f flv rtmp://localhost:1935/show/$name_hd720 + -c copy -f flv rtmp://localhost:1935/show/$name_src; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 20; + hls_path /mnt/hls/; # hls fragments path + # Instruct clients to adjust resolution according to bandwidth + hls_variant _src BANDWIDTH=4096000; # Source bitrate, source resolution + hls_variant _hd720 BANDWIDTH=2048000; # High bitrate, HD 720p resolution + hls_variant _high BANDWIDTH=1152000; # High bitrate, higher-than-SD resolution + hls_variant _mid BANDWIDTH=448000; # Medium bitrate, SD resolution + hls_variant _low BANDWIDTH=288000; # Low bitrate, sub-SD resolution + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 20; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/ecosystem/nginx/latest/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/conf/nginx_no-ffmpeg.conf @@ -0,0 +1,118 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +#error_log logs/error.log; + +events { + worker_connections 1024; +} + +# RTMP configuration +rtmp { + server { + listen 1935; # Listen on standard RTMP port + chunk_size 4000; + # ping 30s; + # notify_method get; + + # This application is to accept incoming stream + application live { + live on; # Allows live input + push rtmp://localhost:1935/show; + } + + # This is the HLS application + application show { + live on; # Allows live input from above application + deny play all; # disable consuming the stream from nginx as rtmp + + hls on; # Enable HTTP Live Streaming + hls_fragment 3; + hls_playlist_length 10; + hls_path /mnt/hls/; # hls fragments path + + # MPEG-DASH + dash on; + dash_path /mnt/dash/; # dash fragments path + dash_fragment 3; + dash_playlist_length 10; + } + } +} + + +http { + include /etc/nginx/sites-enabled/*.conf; + sendfile off; + tcp_nopush on; + directio 512; + # aio on; + + # HTTP server required to serve the player and HLS fragments + server { + listen 8080; + + # Serve HLS fragments + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # Serve DASH fragments + location /dash { + types { + application/dash+xml mpd; + video/mp4 mp4; + } + + root /mnt; + + add_header Cache-Control no-cache; # Disable cache + + + # CORS setup + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Expose-Headers' 'Content-Length'; + + # Allow CORS preflight requests + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Max-Age' 1728000; + add_header 'Content-Type' 'text/plain charset=UTF-8'; + add_header 'Content-Length' 0; + return 204; + } + } + + # This URL provides RTMP statistics in XML + location /stat { + rtmp_stat all; + rtmp_stat_stylesheet stat.xsl; # Use stat.xsl stylesheet + } + + location /stat.xsl { + # XML stylesheet to view RTMP stats. + root /usr/share/nginx/html; + } + + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/ecosystem/nginx/latest/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf @@ -0,0 +1,16 @@ +load_module "/usr/lib/nginx/modules/ngx_rtmp_module.so"; + +worker_processes auto; +rtmp_auto_push on; +events {} +rtmp { + server { + listen 1935; + listen [::]:1935; + + application live { + live on; + record off; + } + } +} \ No newline at end of file diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/latest/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.9' +services: + app: + image: "epicmorg/nginx:${NGINX_VERSION}-rtmp-hls" + build: + context: . + args: + NGINX_VERSION: ${NGINX_VERSION} + NGINX_DOWNLOAD_URL: ${NGINX_DOWNLOAD_URL} \ No newline at end of file diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/latest/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/latest/rtmp-hls/players/hls.html new file mode 100644 index 000000000..15d95b4c1 --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/players/hls.html @@ -0,0 +1,23 @@ + + + + + HLS Live Streaming + + + + +

HLS Player

+ + + + + + + diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/latest/rtmp-hls/players/hls_hlsjs.html new file mode 100644 index 000000000..0237e7a52 --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/players/hls_hlsjs.html @@ -0,0 +1,41 @@ + + + + + HLS streaming + + + + + + + + + + +

HLS Player (using hls.js)

+ +
+
+ +
+
+ + + + + + + diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/latest/rtmp-hls/players/rtmp.html new file mode 100644 index 000000000..d8ce85610 --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/players/rtmp.html @@ -0,0 +1,24 @@ + + + + + RTMP Live Streaming + Live Streaming + + + + + + + +

RTMP Player

+ + + + + diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/latest/rtmp-hls/players/rtmp_hls.html new file mode 100644 index 000000000..35617e913 --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/players/rtmp_hls.html @@ -0,0 +1,30 @@ + + + + + Live Streaming + + + + + + + + +

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.buster.list b/linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ buster main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster main contrib non-free +deb http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-updates main contrib non-free +deb http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-backports main contrib non-free +deb http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ buster-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ buster/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ buster main non-free +#deb http://httpredir.debian.org/debian-multimedia/ buster-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.sid.list b/linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..465c737af --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ sid main contrib non-free +deb-src http://httpredir.debian.org/debian/ sid main contrib non-free +deb http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-updates main contrib non-free +deb http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ testing-proposed-updates main contrib non-free + +#backports +#deb http://httpredir.debian.org/debian/ testing-backports main contrib non-free +#deb-src http://httpredir.debian.org/debian/ testing-backports main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ testing-security main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ testing-security main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ sid main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.stretch.list b/linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..617bf9bb6 --- /dev/null +++ b/linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#main +deb http://httpredir.debian.org/debian/ stretch main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-updates main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-backports main contrib non-free +deb http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free +deb-src http://httpredir.debian.org/debian/ stretch-proposed-updates main contrib non-free + +#security +deb http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free +deb-src http://httpredir.debian.org/debian-security/ stretch/updates main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch main non-free +#deb http://httpredir.debian.org/debian-multimedia/ stretch-backports main +#deb-src http://httpredir.debian.org/debian-multimedia/ stretch-backports main diff --git a/linux/ecosystem/nginx/links.txt b/linux/ecosystem/nginx/links.txt new file mode 100644 index 000000000..8a524e2ee --- /dev/null +++ b/linux/ecosystem/nginx/links.txt @@ -0,0 +1,541 @@ +http://nginx.org/download/nginx-0.1.0.tar.gz +http://nginx.org/download/nginx-0.1.1.tar.gz +http://nginx.org/download/nginx-0.1.10.tar.gz +http://nginx.org/download/nginx-0.1.11.tar.gz +http://nginx.org/download/nginx-0.1.12.tar.gz +http://nginx.org/download/nginx-0.1.13.tar.gz +http://nginx.org/download/nginx-0.1.14.tar.gz +http://nginx.org/download/nginx-0.1.15.tar.gz +http://nginx.org/download/nginx-0.1.16.tar.gz +http://nginx.org/download/nginx-0.1.17.tar.gz +http://nginx.org/download/nginx-0.1.18.tar.gz +http://nginx.org/download/nginx-0.1.19.tar.gz +http://nginx.org/download/nginx-0.1.2.tar.gz +http://nginx.org/download/nginx-0.1.20.tar.gz +http://nginx.org/download/nginx-0.1.21.tar.gz +http://nginx.org/download/nginx-0.1.22.tar.gz +http://nginx.org/download/nginx-0.1.23.tar.gz +http://nginx.org/download/nginx-0.1.24.tar.gz +http://nginx.org/download/nginx-0.1.25.tar.gz +http://nginx.org/download/nginx-0.1.26.tar.gz +http://nginx.org/download/nginx-0.1.27.tar.gz +http://nginx.org/download/nginx-0.1.28.tar.gz +http://nginx.org/download/nginx-0.1.29.tar.gz +http://nginx.org/download/nginx-0.1.3.tar.gz +http://nginx.org/download/nginx-0.1.30.tar.gz +http://nginx.org/download/nginx-0.1.31.tar.gz +http://nginx.org/download/nginx-0.1.32.tar.gz +http://nginx.org/download/nginx-0.1.33.tar.gz +http://nginx.org/download/nginx-0.1.34.tar.gz +http://nginx.org/download/nginx-0.1.35.tar.gz +http://nginx.org/download/nginx-0.1.36.tar.gz +http://nginx.org/download/nginx-0.1.37.tar.gz +http://nginx.org/download/nginx-0.1.38.tar.gz +http://nginx.org/download/nginx-0.1.39.tar.gz +http://nginx.org/download/nginx-0.1.4.tar.gz +http://nginx.org/download/nginx-0.1.40.tar.gz +http://nginx.org/download/nginx-0.1.41.tar.gz +http://nginx.org/download/nginx-0.1.42.tar.gz +http://nginx.org/download/nginx-0.1.43.tar.gz +http://nginx.org/download/nginx-0.1.44.tar.gz +http://nginx.org/download/nginx-0.1.45.tar.gz +http://nginx.org/download/nginx-0.1.5.tar.gz +http://nginx.org/download/nginx-0.1.6.tar.gz +http://nginx.org/download/nginx-0.1.7.tar.gz +http://nginx.org/download/nginx-0.1.8.tar.gz +http://nginx.org/download/nginx-0.1.9.tar.gz +http://nginx.org/download/nginx-0.2.0.tar.gz +http://nginx.org/download/nginx-0.2.1.tar.gz +http://nginx.org/download/nginx-0.2.2.tar.gz +http://nginx.org/download/nginx-0.2.3.tar.gz +http://nginx.org/download/nginx-0.2.4.tar.gz +http://nginx.org/download/nginx-0.2.5.tar.gz +http://nginx.org/download/nginx-0.2.6.tar.gz +http://nginx.org/download/nginx-0.3.0.tar.gz +http://nginx.org/download/nginx-0.3.1.tar.gz +http://nginx.org/download/nginx-0.3.10.tar.gz +http://nginx.org/download/nginx-0.3.11.tar.gz +http://nginx.org/download/nginx-0.3.12.tar.gz +http://nginx.org/download/nginx-0.3.13.tar.gz +http://nginx.org/download/nginx-0.3.14.tar.gz +http://nginx.org/download/nginx-0.3.15.tar.gz +http://nginx.org/download/nginx-0.3.16.tar.gz +http://nginx.org/download/nginx-0.3.17.tar.gz +http://nginx.org/download/nginx-0.3.18.tar.gz +http://nginx.org/download/nginx-0.3.19.tar.gz +http://nginx.org/download/nginx-0.3.2.tar.gz +http://nginx.org/download/nginx-0.3.20.tar.gz +http://nginx.org/download/nginx-0.3.21.tar.gz +http://nginx.org/download/nginx-0.3.22.tar.gz +http://nginx.org/download/nginx-0.3.23.tar.gz +http://nginx.org/download/nginx-0.3.24.tar.gz +http://nginx.org/download/nginx-0.3.25.tar.gz +http://nginx.org/download/nginx-0.3.26.tar.gz +http://nginx.org/download/nginx-0.3.27.tar.gz +http://nginx.org/download/nginx-0.3.28.tar.gz +http://nginx.org/download/nginx-0.3.29.tar.gz +http://nginx.org/download/nginx-0.3.3.tar.gz +http://nginx.org/download/nginx-0.3.30.tar.gz +http://nginx.org/download/nginx-0.3.31.tar.gz +http://nginx.org/download/nginx-0.3.32.tar.gz +http://nginx.org/download/nginx-0.3.33.tar.gz +http://nginx.org/download/nginx-0.3.34.tar.gz +http://nginx.org/download/nginx-0.3.35.tar.gz +http://nginx.org/download/nginx-0.3.36.tar.gz +http://nginx.org/download/nginx-0.3.37.tar.gz +http://nginx.org/download/nginx-0.3.38.tar.gz +http://nginx.org/download/nginx-0.3.39.tar.gz +http://nginx.org/download/nginx-0.3.4.tar.gz +http://nginx.org/download/nginx-0.3.40.tar.gz +http://nginx.org/download/nginx-0.3.41.tar.gz +http://nginx.org/download/nginx-0.3.42.tar.gz +http://nginx.org/download/nginx-0.3.43.tar.gz +http://nginx.org/download/nginx-0.3.44.tar.gz +http://nginx.org/download/nginx-0.3.45.tar.gz +http://nginx.org/download/nginx-0.3.46.tar.gz +http://nginx.org/download/nginx-0.3.47.tar.gz +http://nginx.org/download/nginx-0.3.48.tar.gz +http://nginx.org/download/nginx-0.3.49.tar.gz +http://nginx.org/download/nginx-0.3.5.tar.gz +http://nginx.org/download/nginx-0.3.50.tar.gz +http://nginx.org/download/nginx-0.3.51.tar.gz +http://nginx.org/download/nginx-0.3.52.tar.gz +http://nginx.org/download/nginx-0.3.53.tar.gz +http://nginx.org/download/nginx-0.3.54.tar.gz +http://nginx.org/download/nginx-0.3.55.tar.gz +http://nginx.org/download/nginx-0.3.56.tar.gz +http://nginx.org/download/nginx-0.3.57.tar.gz +http://nginx.org/download/nginx-0.3.58.tar.gz +http://nginx.org/download/nginx-0.3.59.tar.gz +http://nginx.org/download/nginx-0.3.6.tar.gz +http://nginx.org/download/nginx-0.3.60.tar.gz +http://nginx.org/download/nginx-0.3.61.tar.gz +http://nginx.org/download/nginx-0.3.7.tar.gz +http://nginx.org/download/nginx-0.3.8.tar.gz +http://nginx.org/download/nginx-0.3.9.tar.gz +http://nginx.org/download/nginx-0.4.0.tar.gz +http://nginx.org/download/nginx-0.4.1.tar.gz +http://nginx.org/download/nginx-0.4.10.tar.gz +http://nginx.org/download/nginx-0.4.11.tar.gz +http://nginx.org/download/nginx-0.4.12.tar.gz +http://nginx.org/download/nginx-0.4.13.tar.gz +http://nginx.org/download/nginx-0.4.14.tar.gz +http://nginx.org/download/nginx-0.4.2.tar.gz +http://nginx.org/download/nginx-0.4.3.tar.gz +http://nginx.org/download/nginx-0.4.4.tar.gz +http://nginx.org/download/nginx-0.4.5.tar.gz +http://nginx.org/download/nginx-0.4.6.tar.gz +http://nginx.org/download/nginx-0.4.7.tar.gz +http://nginx.org/download/nginx-0.4.8.tar.gz +http://nginx.org/download/nginx-0.4.9.tar.gz +http://nginx.org/download/nginx-0.5.0.tar.gz +http://nginx.org/download/nginx-0.5.1.tar.gz +http://nginx.org/download/nginx-0.5.10.tar.gz +http://nginx.org/download/nginx-0.5.11.tar.gz +http://nginx.org/download/nginx-0.5.12.tar.gz +http://nginx.org/download/nginx-0.5.13.tar.gz +http://nginx.org/download/nginx-0.5.14.tar.gz +http://nginx.org/download/nginx-0.5.15.tar.gz +http://nginx.org/download/nginx-0.5.16.tar.gz +http://nginx.org/download/nginx-0.5.17.tar.gz +http://nginx.org/download/nginx-0.5.18.tar.gz +http://nginx.org/download/nginx-0.5.19.tar.gz +http://nginx.org/download/nginx-0.5.2.tar.gz +http://nginx.org/download/nginx-0.5.20.tar.gz +http://nginx.org/download/nginx-0.5.21.tar.gz +http://nginx.org/download/nginx-0.5.22.tar.gz +http://nginx.org/download/nginx-0.5.23.tar.gz +http://nginx.org/download/nginx-0.5.24.tar.gz +http://nginx.org/download/nginx-0.5.25.tar.gz +http://nginx.org/download/nginx-0.5.26.tar.gz +http://nginx.org/download/nginx-0.5.27.tar.gz +http://nginx.org/download/nginx-0.5.28.tar.gz +http://nginx.org/download/nginx-0.5.29.tar.gz +http://nginx.org/download/nginx-0.5.3.tar.gz +http://nginx.org/download/nginx-0.5.30.tar.gz +http://nginx.org/download/nginx-0.5.31.tar.gz +http://nginx.org/download/nginx-0.5.32.tar.gz +http://nginx.org/download/nginx-0.5.33.tar.gz +http://nginx.org/download/nginx-0.5.34.tar.gz +http://nginx.org/download/nginx-0.5.35.tar.gz +http://nginx.org/download/nginx-0.5.36.tar.gz +http://nginx.org/download/nginx-0.5.37.tar.gz +http://nginx.org/download/nginx-0.5.38.tar.gz +http://nginx.org/download/nginx-0.5.4.tar.gz +http://nginx.org/download/nginx-0.5.5.tar.gz +http://nginx.org/download/nginx-0.5.6.tar.gz +http://nginx.org/download/nginx-0.5.7.tar.gz +http://nginx.org/download/nginx-0.5.8.tar.gz +http://nginx.org/download/nginx-0.5.9.tar.gz +http://nginx.org/download/nginx-0.6.0.tar.gz +http://nginx.org/download/nginx-0.6.1.tar.gz +http://nginx.org/download/nginx-0.6.10.tar.gz +http://nginx.org/download/nginx-0.6.11.tar.gz +http://nginx.org/download/nginx-0.6.12.tar.gz +http://nginx.org/download/nginx-0.6.13.tar.gz +http://nginx.org/download/nginx-0.6.14.tar.gz +http://nginx.org/download/nginx-0.6.15.tar.gz +http://nginx.org/download/nginx-0.6.16.tar.gz +http://nginx.org/download/nginx-0.6.17.tar.gz +http://nginx.org/download/nginx-0.6.18.tar.gz +http://nginx.org/download/nginx-0.6.19.tar.gz +http://nginx.org/download/nginx-0.6.2.tar.gz +http://nginx.org/download/nginx-0.6.20.tar.gz +http://nginx.org/download/nginx-0.6.21.tar.gz +http://nginx.org/download/nginx-0.6.22.tar.gz +http://nginx.org/download/nginx-0.6.23.tar.gz +http://nginx.org/download/nginx-0.6.24.tar.gz +http://nginx.org/download/nginx-0.6.25.tar.gz +http://nginx.org/download/nginx-0.6.26.tar.gz +http://nginx.org/download/nginx-0.6.27.tar.gz +http://nginx.org/download/nginx-0.6.28.tar.gz +http://nginx.org/download/nginx-0.6.29.tar.gz +http://nginx.org/download/nginx-0.6.3.tar.gz +http://nginx.org/download/nginx-0.6.30.tar.gz +http://nginx.org/download/nginx-0.6.31.tar.gz +http://nginx.org/download/nginx-0.6.32.tar.gz +http://nginx.org/download/nginx-0.6.33.tar.gz +http://nginx.org/download/nginx-0.6.34.tar.gz +http://nginx.org/download/nginx-0.6.35.tar.gz +http://nginx.org/download/nginx-0.6.36.tar.gz +http://nginx.org/download/nginx-0.6.37.tar.gz +http://nginx.org/download/nginx-0.6.38.tar.gz +http://nginx.org/download/nginx-0.6.39.tar.gz +http://nginx.org/download/nginx-0.6.4.tar.gz +http://nginx.org/download/nginx-0.6.5.tar.gz +http://nginx.org/download/nginx-0.6.6.tar.gz +http://nginx.org/download/nginx-0.6.7.tar.gz +http://nginx.org/download/nginx-0.6.8.tar.gz +http://nginx.org/download/nginx-0.6.9.tar.gz +http://nginx.org/download/nginx-0.7.0.tar.gz +http://nginx.org/download/nginx-0.7.1.tar.gz +http://nginx.org/download/nginx-0.7.10.tar.gz +http://nginx.org/download/nginx-0.7.11.tar.gz +http://nginx.org/download/nginx-0.7.12.tar.gz +http://nginx.org/download/nginx-0.7.13.tar.gz +http://nginx.org/download/nginx-0.7.14.tar.gz +http://nginx.org/download/nginx-0.7.15.tar.gz +http://nginx.org/download/nginx-0.7.16.tar.gz +http://nginx.org/download/nginx-0.7.17.tar.gz +http://nginx.org/download/nginx-0.7.18.tar.gz +http://nginx.org/download/nginx-0.7.19.tar.gz +http://nginx.org/download/nginx-0.7.2.tar.gz +http://nginx.org/download/nginx-0.7.20.tar.gz +http://nginx.org/download/nginx-0.7.21.tar.gz +http://nginx.org/download/nginx-0.7.22.tar.gz +http://nginx.org/download/nginx-0.7.23.tar.gz +http://nginx.org/download/nginx-0.7.24.tar.gz +http://nginx.org/download/nginx-0.7.25.tar.gz +http://nginx.org/download/nginx-0.7.26.tar.gz +http://nginx.org/download/nginx-0.7.27.tar.gz +http://nginx.org/download/nginx-0.7.28.tar.gz +http://nginx.org/download/nginx-0.7.29.tar.gz +http://nginx.org/download/nginx-0.7.3.tar.gz +http://nginx.org/download/nginx-0.7.30.tar.gz +http://nginx.org/download/nginx-0.7.31.tar.gz +http://nginx.org/download/nginx-0.7.32.tar.gz +http://nginx.org/download/nginx-0.7.33.tar.gz +http://nginx.org/download/nginx-0.7.34.tar.gz +http://nginx.org/download/nginx-0.7.35.tar.gz +http://nginx.org/download/nginx-0.7.36.tar.gz +http://nginx.org/download/nginx-0.7.37.tar.gz +http://nginx.org/download/nginx-0.7.38.tar.gz +http://nginx.org/download/nginx-0.7.39.tar.gz +http://nginx.org/download/nginx-0.7.4.tar.gz +http://nginx.org/download/nginx-0.7.40.tar.gz +http://nginx.org/download/nginx-0.7.41.tar.gz +http://nginx.org/download/nginx-0.7.42.tar.gz +http://nginx.org/download/nginx-0.7.43.tar.gz +http://nginx.org/download/nginx-0.7.44.tar.gz +http://nginx.org/download/nginx-0.7.45.tar.gz +http://nginx.org/download/nginx-0.7.46.tar.gz +http://nginx.org/download/nginx-0.7.47.tar.gz +http://nginx.org/download/nginx-0.7.48.tar.gz +http://nginx.org/download/nginx-0.7.49.tar.gz +http://nginx.org/download/nginx-0.7.5.tar.gz +http://nginx.org/download/nginx-0.7.50.tar.gz +http://nginx.org/download/nginx-0.7.51.tar.gz +http://nginx.org/download/nginx-0.7.52.tar.gz +http://nginx.org/download/nginx-0.7.53.tar.gz +http://nginx.org/download/nginx-0.7.54.tar.gz +http://nginx.org/download/nginx-0.7.55.tar.gz +http://nginx.org/download/nginx-0.7.56.tar.gz +http://nginx.org/download/nginx-0.7.57.tar.gz +http://nginx.org/download/nginx-0.7.58.tar.gz +http://nginx.org/download/nginx-0.7.59.tar.gz +http://nginx.org/download/nginx-0.7.6.tar.gz +http://nginx.org/download/nginx-0.7.60.tar.gz +http://nginx.org/download/nginx-0.7.61.tar.gz +http://nginx.org/download/nginx-0.7.62.tar.gz +http://nginx.org/download/nginx-0.7.63.tar.gz +http://nginx.org/download/nginx-0.7.64.tar.gz +http://nginx.org/download/nginx-0.7.65.tar.gz +http://nginx.org/download/nginx-0.7.66.tar.gz +http://nginx.org/download/nginx-0.7.67.tar.gz +http://nginx.org/download/nginx-0.7.68.tar.gz +http://nginx.org/download/nginx-0.7.69.tar.gz +http://nginx.org/download/nginx-0.7.7.tar.gz +http://nginx.org/download/nginx-0.7.8.tar.gz +http://nginx.org/download/nginx-0.7.9.tar.gz +http://nginx.org/download/nginx-0.8.0.tar.gz +http://nginx.org/download/nginx-0.8.1.tar.gz +http://nginx.org/download/nginx-0.8.10.tar.gz +http://nginx.org/download/nginx-0.8.11.tar.gz +http://nginx.org/download/nginx-0.8.12.tar.gz +http://nginx.org/download/nginx-0.8.13.tar.gz +http://nginx.org/download/nginx-0.8.14.tar.gz +http://nginx.org/download/nginx-0.8.15.tar.gz +http://nginx.org/download/nginx-0.8.16.tar.gz +http://nginx.org/download/nginx-0.8.17.tar.gz +http://nginx.org/download/nginx-0.8.18.tar.gz +http://nginx.org/download/nginx-0.8.19.tar.gz +http://nginx.org/download/nginx-0.8.2.tar.gz +http://nginx.org/download/nginx-0.8.20.tar.gz +http://nginx.org/download/nginx-0.8.21.tar.gz +http://nginx.org/download/nginx-0.8.22.tar.gz +http://nginx.org/download/nginx-0.8.23.tar.gz +http://nginx.org/download/nginx-0.8.24.tar.gz +http://nginx.org/download/nginx-0.8.25.tar.gz +http://nginx.org/download/nginx-0.8.26.tar.gz +http://nginx.org/download/nginx-0.8.27.tar.gz +http://nginx.org/download/nginx-0.8.28.tar.gz +http://nginx.org/download/nginx-0.8.29.tar.gz +http://nginx.org/download/nginx-0.8.3.tar.gz +http://nginx.org/download/nginx-0.8.30.tar.gz +http://nginx.org/download/nginx-0.8.31.tar.gz +http://nginx.org/download/nginx-0.8.32.tar.gz +http://nginx.org/download/nginx-0.8.33.tar.gz +http://nginx.org/download/nginx-0.8.34.tar.gz +http://nginx.org/download/nginx-0.8.35.tar.gz +http://nginx.org/download/nginx-0.8.36.tar.gz +http://nginx.org/download/nginx-0.8.37.tar.gz +http://nginx.org/download/nginx-0.8.38.tar.gz +http://nginx.org/download/nginx-0.8.39.tar.gz +http://nginx.org/download/nginx-0.8.4.tar.gz +http://nginx.org/download/nginx-0.8.40.tar.gz +http://nginx.org/download/nginx-0.8.41.tar.gz +http://nginx.org/download/nginx-0.8.42.tar.gz +http://nginx.org/download/nginx-0.8.43.tar.gz +http://nginx.org/download/nginx-0.8.44.tar.gz +http://nginx.org/download/nginx-0.8.45.tar.gz +http://nginx.org/download/nginx-0.8.46.tar.gz +http://nginx.org/download/nginx-0.8.47.tar.gz +http://nginx.org/download/nginx-0.8.48.tar.gz +http://nginx.org/download/nginx-0.8.49.tar.gz +http://nginx.org/download/nginx-0.8.5.tar.gz +http://nginx.org/download/nginx-0.8.50.tar.gz +http://nginx.org/download/nginx-0.8.51.tar.gz +http://nginx.org/download/nginx-0.8.52.tar.gz +http://nginx.org/download/nginx-0.8.53.tar.gz +http://nginx.org/download/nginx-0.8.54.tar.gz +http://nginx.org/download/nginx-0.8.55.tar.gz +http://nginx.org/download/nginx-0.8.6.tar.gz +http://nginx.org/download/nginx-0.8.7.tar.gz +http://nginx.org/download/nginx-0.8.8.tar.gz +http://nginx.org/download/nginx-0.8.9.tar.gz +http://nginx.org/download/nginx-0.9.0.tar.gz +http://nginx.org/download/nginx-0.9.1.tar.gz +http://nginx.org/download/nginx-0.9.2.tar.gz +http://nginx.org/download/nginx-0.9.3.tar.gz +http://nginx.org/download/nginx-0.9.4.tar.gz +http://nginx.org/download/nginx-0.9.5.tar.gz +http://nginx.org/download/nginx-0.9.6.tar.gz +http://nginx.org/download/nginx-0.9.7.tar.gz +http://nginx.org/download/nginx-1.0.0.tar.gz +http://nginx.org/download/nginx-1.0.1.tar.gz +http://nginx.org/download/nginx-1.0.2.tar.gz +http://nginx.org/download/nginx-1.0.3.tar.gz +http://nginx.org/download/nginx-1.0.4.tar.gz +http://nginx.org/download/nginx-1.0.5.tar.gz +http://nginx.org/download/nginx-1.0.6.tar.gz +http://nginx.org/download/nginx-1.0.7.tar.gz +http://nginx.org/download/nginx-1.0.8.tar.gz +http://nginx.org/download/nginx-1.0.9.tar.gz +http://nginx.org/download/nginx-1.0.10.tar.gz +http://nginx.org/download/nginx-1.0.11.tar.gz +http://nginx.org/download/nginx-1.0.12.tar.gz +http://nginx.org/download/nginx-1.0.13.tar.gz +http://nginx.org/download/nginx-1.0.14.tar.gz +http://nginx.org/download/nginx-1.0.15.tar.gz +http://nginx.org/download/nginx-1.1.0.tar.gz +http://nginx.org/download/nginx-1.1.1.tar.gz +http://nginx.org/download/nginx-1.1.2.tar.gz +http://nginx.org/download/nginx-1.1.3.tar.gz +http://nginx.org/download/nginx-1.1.4.tar.gz +http://nginx.org/download/nginx-1.1.5.tar.gz +http://nginx.org/download/nginx-1.1.6.tar.gz +http://nginx.org/download/nginx-1.1.7.tar.gz +http://nginx.org/download/nginx-1.1.8.tar.gz +http://nginx.org/download/nginx-1.1.9.tar.gz +http://nginx.org/download/nginx-1.1.10.tar.gz +http://nginx.org/download/nginx-1.1.11.tar.gz +http://nginx.org/download/nginx-1.1.12.tar.gz +http://nginx.org/download/nginx-1.1.13.tar.gz +http://nginx.org/download/nginx-1.1.14.tar.gz +http://nginx.org/download/nginx-1.1.15.tar.gz +http://nginx.org/download/nginx-1.1.16.tar.gz +http://nginx.org/download/nginx-1.1.17.tar.gz +http://nginx.org/download/nginx-1.1.18.tar.gz +http://nginx.org/download/nginx-1.1.19.tar.gz +http://nginx.org/download/nginx-1.2.0.tar.gz +http://nginx.org/download/nginx-1.2.1.tar.gz +http://nginx.org/download/nginx-1.2.2.tar.gz +http://nginx.org/download/nginx-1.2.3.tar.gz +http://nginx.org/download/nginx-1.2.4.tar.gz +http://nginx.org/download/nginx-1.2.5.tar.gz +http://nginx.org/download/nginx-1.2.6.tar.gz +http://nginx.org/download/nginx-1.2.7.tar.gz +http://nginx.org/download/nginx-1.2.8.tar.gz +http://nginx.org/download/nginx-1.2.9.tar.gz +http://nginx.org/download/nginx-1.3.0.tar.gz +http://nginx.org/download/nginx-1.3.1.tar.gz +http://nginx.org/download/nginx-1.3.2.tar.gz +http://nginx.org/download/nginx-1.3.3.tar.gz +http://nginx.org/download/nginx-1.3.4.tar.gz +http://nginx.org/download/nginx-1.3.5.tar.gz +http://nginx.org/download/nginx-1.3.6.tar.gz +http://nginx.org/download/nginx-1.3.7.tar.gz +http://nginx.org/download/nginx-1.3.8.tar.gz +http://nginx.org/download/nginx-1.3.9.tar.gz +http://nginx.org/download/nginx-1.3.10.tar.gz +http://nginx.org/download/nginx-1.3.11.tar.gz +http://nginx.org/download/nginx-1.3.12.tar.gz +http://nginx.org/download/nginx-1.3.13.tar.gz +http://nginx.org/download/nginx-1.3.14.tar.gz +http://nginx.org/download/nginx-1.3.15.tar.gz +http://nginx.org/download/nginx-1.3.16.tar.gz +http://nginx.org/download/nginx-1.4.0.tar.gz +http://nginx.org/download/nginx-1.4.1.tar.gz +http://nginx.org/download/nginx-1.4.2.tar.gz +http://nginx.org/download/nginx-1.4.3.tar.gz +http://nginx.org/download/nginx-1.4.4.tar.gz +http://nginx.org/download/nginx-1.4.5.tar.gz +http://nginx.org/download/nginx-1.4.6.tar.gz +http://nginx.org/download/nginx-1.4.7.tar.gz +http://nginx.org/download/nginx-1.5.0.tar.gz +http://nginx.org/download/nginx-1.5.1.tar.gz +http://nginx.org/download/nginx-1.5.2.tar.gz +http://nginx.org/download/nginx-1.5.3.tar.gz +http://nginx.org/download/nginx-1.5.4.tar.gz +http://nginx.org/download/nginx-1.5.5.tar.gz +http://nginx.org/download/nginx-1.5.6.tar.gz +http://nginx.org/download/nginx-1.5.7.tar.gz +http://nginx.org/download/nginx-1.5.8.tar.gz +http://nginx.org/download/nginx-1.5.9.tar.gz +http://nginx.org/download/nginx-1.5.10.tar.gz +http://nginx.org/download/nginx-1.5.11.tar.gz +http://nginx.org/download/nginx-1.5.12.tar.gz +http://nginx.org/download/nginx-1.5.13.tar.gz +http://nginx.org/download/nginx-1.6.0.tar.gz +http://nginx.org/download/nginx-1.6.1.tar.gz +http://nginx.org/download/nginx-1.6.2.tar.gz +http://nginx.org/download/nginx-1.6.3.tar.gz +http://nginx.org/download/nginx-1.7.0.tar.gz +http://nginx.org/download/nginx-1.7.1.tar.gz +http://nginx.org/download/nginx-1.7.2.tar.gz +http://nginx.org/download/nginx-1.7.3.tar.gz +http://nginx.org/download/nginx-1.7.4.tar.gz +http://nginx.org/download/nginx-1.7.5.tar.gz +http://nginx.org/download/nginx-1.7.6.tar.gz +http://nginx.org/download/nginx-1.7.7.tar.gz +http://nginx.org/download/nginx-1.7.8.tar.gz +http://nginx.org/download/nginx-1.7.9.tar.gz +http://nginx.org/download/nginx-1.7.10.tar.gz +http://nginx.org/download/nginx-1.7.11.tar.gz +http://nginx.org/download/nginx-1.7.12.tar.gz +http://nginx.org/download/nginx-1.8.0.tar.gz +http://nginx.org/download/nginx-1.8.1.tar.gz +http://nginx.org/download/nginx-1.9.0.tar.gz +http://nginx.org/download/nginx-1.9.1.tar.gz +http://nginx.org/download/nginx-1.9.2.tar.gz +http://nginx.org/download/nginx-1.9.3.tar.gz +http://nginx.org/download/nginx-1.9.4.tar.gz +http://nginx.org/download/nginx-1.9.5.tar.gz +http://nginx.org/download/nginx-1.9.6.tar.gz +http://nginx.org/download/nginx-1.9.7.tar.gz +http://nginx.org/download/nginx-1.9.8.tar.gz +http://nginx.org/download/nginx-1.9.9.tar.gz +http://nginx.org/download/nginx-1.9.10.tar.gz +http://nginx.org/download/nginx-1.9.11.tar.gz +http://nginx.org/download/nginx-1.9.12.tar.gz +http://nginx.org/download/nginx-1.9.13.tar.gz +http://nginx.org/download/nginx-1.9.14.tar.gz +http://nginx.org/download/nginx-1.9.15.tar.gz +http://nginx.org/download/nginx-1.10.0.tar.gz +http://nginx.org/download/nginx-1.10.1.tar.gz +http://nginx.org/download/nginx-1.10.2.tar.gz +http://nginx.org/download/nginx-1.10.3.tar.gz +http://nginx.org/download/nginx-1.11.0.tar.gz +http://nginx.org/download/nginx-1.11.1.tar.gz +http://nginx.org/download/nginx-1.11.2.tar.gz +http://nginx.org/download/nginx-1.11.3.tar.gz +http://nginx.org/download/nginx-1.11.4.tar.gz +http://nginx.org/download/nginx-1.11.5.tar.gz +http://nginx.org/download/nginx-1.11.6.tar.gz +http://nginx.org/download/nginx-1.11.7.tar.gz +http://nginx.org/download/nginx-1.11.8.tar.gz +http://nginx.org/download/nginx-1.11.9.tar.gz +http://nginx.org/download/nginx-1.11.10.tar.gz +http://nginx.org/download/nginx-1.11.11.tar.gz +http://nginx.org/download/nginx-1.11.12.tar.gz +http://nginx.org/download/nginx-1.11.13.tar.gz +http://nginx.org/download/nginx-1.12.0.tar.gz +http://nginx.org/download/nginx-1.12.1.tar.gz +http://nginx.org/download/nginx-1.12.2.tar.gz +http://nginx.org/download/nginx-1.13.0.tar.gz +http://nginx.org/download/nginx-1.13.1.tar.gz +http://nginx.org/download/nginx-1.13.2.tar.gz +http://nginx.org/download/nginx-1.13.3.tar.gz +http://nginx.org/download/nginx-1.13.4.tar.gz +http://nginx.org/download/nginx-1.13.5.tar.gz +http://nginx.org/download/nginx-1.13.6.tar.gz +http://nginx.org/download/nginx-1.13.7.tar.gz +http://nginx.org/download/nginx-1.13.8.tar.gz +http://nginx.org/download/nginx-1.13.9.tar.gz +http://nginx.org/download/nginx-1.13.10.tar.gz +http://nginx.org/download/nginx-1.13.11.tar.gz +http://nginx.org/download/nginx-1.13.12.tar.gz +http://nginx.org/download/nginx-1.14.0.tar.gz +http://nginx.org/download/nginx-1.14.1.tar.gz +http://nginx.org/download/nginx-1.14.2.tar.gz +http://nginx.org/download/nginx-1.15.0.tar.gz +http://nginx.org/download/nginx-1.15.1.tar.gz +http://nginx.org/download/nginx-1.15.2.tar.gz +http://nginx.org/download/nginx-1.15.3.tar.gz +http://nginx.org/download/nginx-1.15.4.tar.gz +http://nginx.org/download/nginx-1.15.5.tar.gz +http://nginx.org/download/nginx-1.15.6.tar.gz +http://nginx.org/download/nginx-1.15.7.tar.gz +http://nginx.org/download/nginx-1.15.8.tar.gz +http://nginx.org/download/nginx-1.15.9.tar.gz +http://nginx.org/download/nginx-1.15.10.tar.gz +http://nginx.org/download/nginx-1.15.11.tar.gz +http://nginx.org/download/nginx-1.15.12.tar.gz +http://nginx.org/download/nginx-1.16.0.tar.gz +http://nginx.org/download/nginx-1.16.1.tar.gz +http://nginx.org/download/nginx-1.17.0.tar.gz +http://nginx.org/download/nginx-1.17.1.tar.gz +http://nginx.org/download/nginx-1.17.2.tar.gz +http://nginx.org/download/nginx-1.17.3.tar.gz +http://nginx.org/download/nginx-1.17.4.tar.gz +http://nginx.org/download/nginx-1.17.5.tar.gz +http://nginx.org/download/nginx-1.17.6.tar.gz +http://nginx.org/download/nginx-1.17.7.tar.gz +http://nginx.org/download/nginx-1.17.8.tar.gz +http://nginx.org/download/nginx-1.17.9.tar.gz +http://nginx.org/download/nginx-1.17.10.tar.gz +http://nginx.org/download/nginx-1.18.0.tar.gz +http://nginx.org/download/nginx-1.19.0.tar.gz +http://nginx.org/download/nginx-1.19.1.tar.gz +http://nginx.org/download/nginx-1.19.2.tar.gz +http://nginx.org/download/nginx-1.19.3.tar.gz +http://nginx.org/download/nginx-1.19.4.tar.gz +http://nginx.org/download/nginx-1.19.5.tar.gz +http://nginx.org/download/nginx-1.19.6.tar.gz +http://nginx.org/download/nginx-1.19.7.tar.gz +http://nginx.org/download/nginx-1.19.8.tar.gz +http://nginx.org/download/nginx-1.19.9.tar.gz +http://nginx.org/download/nginx-1.19.10.tar.gz +http://nginx.org/download/nginx-1.20.0.tar.gz +http://nginx.org/download/nginx-1.20.1.tar.gz +http://nginx.org/download/nginx-1.21.3.tar.gz \ No newline at end of file diff --git a/linux/ecosystem/php/latest/Dockerfile b/linux/ecosystem/php/latest/Dockerfile new file mode 100644 index 000000000..f687b4472 --- /dev/null +++ b/linux/ecosystem/php/latest/Dockerfile @@ -0,0 +1,259 @@ +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 + +ARG P4API_VER=r20.1 +ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP7 +################################################################## +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + smbclient libsmbclient libsmbclient-dev \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} + +################################################################## +# compilling smbclient +################################################################## +RUN pecl install smbclient && \ + cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 +ARG PHP_VER=7.4 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini + +################################################################## +# Installing PHP7 +################################################################## +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi \ + php-pear \ + php7.4-gmp \ + php7.4-snmp \ + php7.4-ldap \ + php7.4-mail \ + php7.4-soap \ + php7.4-mysql \ + php7.4-memcached \ + php7.4-memcache \ + php7.4-igbinary \ + php7.4-interbase \ + php7.4-curl \ + php7.4-gd \ + php7.4-intl \ + php7.4-zip \ + php7.4-bcmath \ + php7.4-imap \ + php7.4-pspell \ + php7.4-sqlite3 \ + php7.4-pgsql \ + php7.4-tidy \ + php7.4-xmlrpc \ + php7.4-xml \ + php7.4-mbstring \ + php7.4-apcu \ + php7.4-common \ + php7.4-json \ + php7.4-readline \ + php7.4-enchant \ + php7.4-ssh2 \ + php7.4-oauth \ + php7.4-gmagick \ + php7.4-gnupg \ + php7.4-redis \ + smbclient libsmbclient \ + php7.4-yaml \ + php7.4-geoip \ + sendmail && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + update-alternatives --set php /usr/bin/php7.4 && \ + pecl channel-update pecl.php.net && \ + php -m && \ + php -v + +################################################################## +# Enabling extensions +################################################################## +RUN phpenmod \ + snmp \ + gmp \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + gnupg \ + iconv \ + imap \ + json \ + mbstring \ + memcached \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmagickwand-dev \ + imagemagick && \ + pecl install imagick && \ +# echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +RUN echo "extension = ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} +RUN echo "extension = ${PHP_MODULE_PATH}/smbclient.so" > ${SMB_PHP_INI} && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ + php -m && \ + php -v + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + diff --git a/linux/ecosystem/php/latest/Makefile b/linux/ecosystem/php/latest/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/php/latest/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/php/latest/README.md b/linux/ecosystem/php/latest/README.md similarity index 100% rename from linux/php/latest/README.md rename to linux/ecosystem/php/latest/README.md diff --git a/linux/ecosystem/php/latest/docker-compose.yml b/linux/ecosystem/php/latest/docker-compose.yml new file mode 100644 index 000000000..2efbde924 --- /dev/null +++ b/linux/ecosystem/php/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/php:latest" + build: + context: . diff --git a/linux/ecosystem/php/php7.2/Dockerfile b/linux/ecosystem/php/php7.2/Dockerfile new file mode 100644 index 000000000..91d279a62 --- /dev/null +++ b/linux/ecosystem/php/php7.2/Dockerfile @@ -0,0 +1,239 @@ +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-7.2 + +ARG P4API_VER=r20.1 +ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG P4MODULE_PATH=/usr/lib/php/20170718 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP7 +################################################################## +#installing php repo +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + php7.2 \ + php7.2-dev \ + php7.2-fpm \ + php7.2-cli \ + php7.2-cgi + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${P4MODULE_PATH}/perforce.so ${EXPORT_DIR} + + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/prod +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_MODULE_PATH=/usr/lib/php/20170718 +ARG PHP_VER=7.2 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini + +################################################################## +# Installing PHP7 +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + php7.2-ldap \ + php7.2-dev \ + php7.2 \ + php7.2-mail \ + php7.2-mailparse \ + php7.2-soap \ + php7.2-mysql \ + php7.2-curl \ + php7.2-gd \ + php7.2-intl \ + php7.2-zip \ + php7.2-bcmath \ + php7.2-fpm \ + php7.2-imap \ + php7.2-pspell \ + php7.2-recode \ + php7.2-sqlite3 \ + php7.2-pgsql \ + php7.2-tidy \ + php7.2-xmlrpc \ + php7.2-xml \ + php7.2-mbstring \ + php7.2-gettext \ + php7.2-apcu \ + php7.2-cli \ + php7.2-common \ + php7.2-cgi \ + php7.2-json \ + php7.2-readline \ + php7.2-enchant \ + php7.2-ssh2 \ + php7.2-oauth \ + php7.2-gmagick \ + php7.2-redis \ + php7.2-smbclient \ + php7.2-yaml \ + php7.2-geoip \ + sendmail && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + update-alternatives --set php /usr/bin/php7.2 && \ + pecl channel-update pecl.php.net && \ + php -m && \ + php -v + +################################################################## +# Enabling extensions +################################################################## +RUN phpenmod \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + iconv \ + imap \ + json \ + mbstring \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmagickwand-dev \ + imagemagick && \ + pecl install imagick && \ +# echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_7.2.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +RUN echo "extensio n= ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \ +# ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + diff --git a/linux/ecosystem/php/php7.2/Makefile b/linux/ecosystem/php/php7.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/php/php7.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/php/php7.2/README.md b/linux/ecosystem/php/php7.2/README.md similarity index 100% rename from linux/php/php7.2/README.md rename to linux/ecosystem/php/php7.2/README.md diff --git a/linux/ecosystem/php/php7.2/docker-compose.yml b/linux/ecosystem/php/php7.2/docker-compose.yml new file mode 100644 index 000000000..1105fecbf --- /dev/null +++ b/linux/ecosystem/php/php7.2/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/php:php7.2" + build: + context: . diff --git a/linux/ecosystem/php/php7.3/Dockerfile b/linux/ecosystem/php/php7.3/Dockerfile new file mode 100644 index 000000000..36dec8493 --- /dev/null +++ b/linux/ecosystem/php/php7.3/Dockerfile @@ -0,0 +1,245 @@ +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-7.3 + +ARG P4API_VER=r20.1 +ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG P4MODULE_PATH=/usr/lib/php/20180731 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP7 +################################################################## +#installing php repo +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' + +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + php7.3 \ + php7.3-dev \ + php7.3-fpm \ + php7.3-cli \ + php7.3-cgi + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${P4MODULE_PATH}/perforce.so ${EXPORT_DIR} + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/prod +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_MODULE_PATH=/usr/lib/php/20180731 +ARG PHP_VER=7.3 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini + +################################################################## +# Installing PHP7 +################################################################## +RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg +RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + php7.3-gmp \ + php7.3-snmp \ + php7.3-ldap \ + php7.3-dev \ + php7.3 \ + php7.3-mail \ + php7.3-mailparse \ + php7.3-soap \ + php7.3-mysql \ + php7.3-memcached \ + php7.3-memcache \ + php7.3-igbinary \ + php7.3-curl \ + php7.3-gd \ + php7.3-intl \ + php7.3-zip \ + php7.3-bcmath \ + php7.3-fpm \ + php7.3-imap \ + php7.3-pspell \ + php7.3-recode \ + php7.3-sqlite3 \ + php7.3-pgsql \ + php7.3-tidy \ + php7.3-xmlrpc \ + php7.3-xml \ + php7.3-mbstring \ + php7.3-gettext \ + php7.3-apcu \ + php7.3-cli \ + php7.3-common \ + php7.3-cgi \ + php7.3-json \ + php7.3-readline \ + php7.3-enchant \ + php7.3-ssh2 \ + php7.3-oauth \ + php7.3-gmagick \ + php7.3-redis \ + php7.3-smbclient \ + php7.3-yaml \ + php7.3-geoip \ + sendmail && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + update-alternatives --set php /usr/bin/php7.3 && \ + php -m && \ + php -v + +################################################################## +# Enabling extensions +################################################################## +RUN phpenmod \ + snmp \ + gmp \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + gettext \ + iconv \ + imap \ + json \ + mbstring \ + memcached \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmagickwand-dev \ + imagemagick && \ + pecl install imagick && \ +# echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_7.3.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +RUN echo "extension = ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + diff --git a/linux/ecosystem/php/php7.3/Makefile b/linux/ecosystem/php/php7.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/php/php7.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/php/php7.3/README.md b/linux/ecosystem/php/php7.3/README.md similarity index 100% rename from linux/php/php7.3/README.md rename to linux/ecosystem/php/php7.3/README.md diff --git a/linux/ecosystem/php/php7.3/docker-compose.yml b/linux/ecosystem/php/php7.3/docker-compose.yml new file mode 100644 index 000000000..0d4ba6698 --- /dev/null +++ b/linux/ecosystem/php/php7.3/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/php:php7.3" + build: + context: . diff --git a/linux/ecosystem/php/php7.4/Dockerfile b/linux/ecosystem/php/php7.4/Dockerfile new file mode 100644 index 000000000..f687b4472 --- /dev/null +++ b/linux/ecosystem/php/php7.4/Dockerfile @@ -0,0 +1,259 @@ +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## +ENV BuildDocker true + +ARG BUILDS_DIR=/builds +ARG SRC_DIR=${BUILDS_DIR}/src +ARG EXPORT_DIR=${BUILDS_DIR}/export +ARG P4API_DIR=${SRC_DIR}/p4api +ARG P4PHP_DIR=${SRC_DIR}/p4php +ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 + +ARG P4API_VER=r20.1 +ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz + +ARG P4PHP_VER=r20.1 +ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 + +################################################################## +# Files and folders +################################################################## +RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} + +################################################################## +# Installing PHP7 +################################################################## +#Install base packages +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + smbclient libsmbclient libsmbclient-dev \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi + +################################################################## +# preparing p4src +################################################################## +RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ + wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ + wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ + cd ${P4API_DIR} && \ + ls -las && \ + cd ${P4PHP_DIR} && \ + ls -las && \ + cd ${MAKE_DIR} && \ + ls -las && \ + cd ${SRC_DIR} && \ + ls -las + +################################################################## +# compilling p4src +################################################################## +RUN cd ${MAKE_DIR} && \ + ls -las && \ + phpize && \ + ./configure --with-perforce=${P4API_DIR} && \ + make && \ + make test && \ + make install && \ + cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} + +################################################################## +# compilling smbclient +################################################################## +RUN pecl install smbclient && \ + cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} + +################################################################## +################################################################## +################################################################## + +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +ARG PHP_MODULE_PATH=/usr/lib/php/20190902 +ARG PHP_VER=7.4 +ARG PHP_DIR=/etc/php/${PHP_VER} +ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini +ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini + +################################################################## +# Installing PHP7 +################################################################## +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmemcached-dev \ + php7.4 \ + php7.4-dev \ + php7.4-fpm \ + php7.4-cli \ + php7.4-cgi \ + php-pear \ + php7.4-gmp \ + php7.4-snmp \ + php7.4-ldap \ + php7.4-mail \ + php7.4-soap \ + php7.4-mysql \ + php7.4-memcached \ + php7.4-memcache \ + php7.4-igbinary \ + php7.4-interbase \ + php7.4-curl \ + php7.4-gd \ + php7.4-intl \ + php7.4-zip \ + php7.4-bcmath \ + php7.4-imap \ + php7.4-pspell \ + php7.4-sqlite3 \ + php7.4-pgsql \ + php7.4-tidy \ + php7.4-xmlrpc \ + php7.4-xml \ + php7.4-mbstring \ + php7.4-apcu \ + php7.4-common \ + php7.4-json \ + php7.4-readline \ + php7.4-enchant \ + php7.4-ssh2 \ + php7.4-oauth \ + php7.4-gmagick \ + php7.4-gnupg \ + php7.4-redis \ + smbclient libsmbclient \ + php7.4-yaml \ + php7.4-geoip \ + sendmail && \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + update-alternatives --set php /usr/bin/php7.4 && \ + pecl channel-update pecl.php.net && \ + php -m && \ + php -v + +################################################################## +# Enabling extensions +################################################################## +RUN phpenmod \ + snmp \ + gmp \ + calendar \ + ldap \ + curl \ + exif \ + ftp \ + fileinfo \ + gd \ + geoip \ + gnupg \ + iconv \ + imap \ + json \ + mbstring \ + memcached \ + mysqli \ + mysqlnd \ + oauth \ + pdo_mysql \ + pdo_sqlite \ + phar \ + posix \ + readline \ + redis \ + simplexml \ + sockets \ + sqlite3 \ + ssh2 \ + tokenizer \ + xml \ + xmlreader \ + xmlrpc \ + xmlwriter \ + xsl \ + yaml && \ + php -m && \ + php -v + +################################################################## +# Installing imagic addon +################################################################## +RUN apt-get update && \ + apt-get install -y --allow-unauthenticated \ + libmagickwand-dev \ + imagemagick && \ + pecl install imagick && \ +# echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing IOnCube addon +################################################################## +ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz +RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ + cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ +# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ + echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ + php -m && \ + php -v + +################################################################## +# Installing P4 addon +################################################################## +COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} +RUN echo "extension = ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ + ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ + php -m && \ + php -v + +################################################################## +# Installing smbclient addon +################################################################## +COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} +RUN echo "extension = ${PHP_MODULE_PATH}/smbclient.so" > ${SMB_PHP_INI} && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ + ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ + php -m && \ + php -v + +################################################################## +# Installing Composer addon +################################################################## +RUN cd /tmp && \ + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ + rm /tmp/composer-setup.php + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/ioncube/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/ioncube.tar.gz + diff --git a/linux/ecosystem/php/php7.4/Makefile b/linux/ecosystem/php/php7.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/php/php7.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/php/php7.4/README.md b/linux/ecosystem/php/php7.4/README.md similarity index 100% rename from linux/php/php7.4/README.md rename to linux/ecosystem/php/php7.4/README.md diff --git a/linux/ecosystem/php/php7.4/docker-compose.yml b/linux/ecosystem/php/php7.4/docker-compose.yml new file mode 100644 index 000000000..76e1ebf01 --- /dev/null +++ b/linux/ecosystem/php/php7.4/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/php:php7.4" + build: + context: . diff --git a/linux/ecosystem/postgres/10/Dockerfile b/linux/ecosystem/postgres/10/Dockerfile new file mode 100644 index 000000000..5ecee8d3a --- /dev/null +++ b/linux/ecosystem/postgres/10/Dockerfile @@ -0,0 +1,90 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/10/p/postgresql-10/ +#################################################################################################################################### +ENV PG_MAJOR 10 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] diff --git a/linux/ecosystem/postgres/10/Makefile b/linux/ecosystem/postgres/10/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/10/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/10/README.md b/linux/ecosystem/postgres/10/README.md similarity index 100% rename from linux/postgres/10/README.md rename to linux/ecosystem/postgres/10/README.md diff --git a/linux/ecosystem/postgres/10/docker-compose.yml b/linux/ecosystem/postgres/10/docker-compose.yml new file mode 100644 index 000000000..6362512b8 --- /dev/null +++ b/linux/ecosystem/postgres/10/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:10" + build: + context: . diff --git a/linux/ecosystem/postgres/10/docker-entrypoint.sh b/linux/ecosystem/postgres/10/docker-entrypoint.sh new file mode 100755 index 000000000..ac197eed5 --- /dev/null +++ b/linux/ecosystem/postgres/10/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_WALDIR" ]; then + mkdir -p "$POSTGRES_INITDB_WALDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_WALDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_WALDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_WALDIR" ]; then + set -- --waldir "$POSTGRES_INITDB_WALDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/ecosystem/postgres/11/Dockerfile b/linux/ecosystem/postgres/11/Dockerfile new file mode 100644 index 000000000..5db8d5879 --- /dev/null +++ b/linux/ecosystem/postgres/11/Dockerfile @@ -0,0 +1,90 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/11/p/postgresql-11/ +#################################################################################################################################### +ENV PG_MAJOR 11 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] diff --git a/linux/ecosystem/postgres/11/Makefile b/linux/ecosystem/postgres/11/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/11/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/11/README.md b/linux/ecosystem/postgres/11/README.md similarity index 100% rename from linux/postgres/11/README.md rename to linux/ecosystem/postgres/11/README.md diff --git a/linux/ecosystem/postgres/11/docker-compose.yml b/linux/ecosystem/postgres/11/docker-compose.yml new file mode 100644 index 000000000..2554735d4 --- /dev/null +++ b/linux/ecosystem/postgres/11/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:11" + build: + context: . diff --git a/linux/ecosystem/postgres/11/docker-entrypoint.sh b/linux/ecosystem/postgres/11/docker-entrypoint.sh new file mode 100755 index 000000000..eeeac649d --- /dev/null +++ b/linux/ecosystem/postgres/11/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_WALDIR" ]; then + mkdir -p "$POSTGRES_INITDB_WALDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_WALDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_WALDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_WALDIR" ]; then + set -- --waldir "$POSTGRES_INITDB_WALDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/ecosystem/postgres/12/Dockerfile b/linux/ecosystem/postgres/12/Dockerfile new file mode 100644 index 000000000..3a80443a7 --- /dev/null +++ b/linux/ecosystem/postgres/12/Dockerfile @@ -0,0 +1,90 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/12/p/postgresql-12/ +#################################################################################################################################### +ENV PG_MAJOR 12 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] diff --git a/linux/ecosystem/postgres/12/Makefile b/linux/ecosystem/postgres/12/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/12/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/12/README.md b/linux/ecosystem/postgres/12/README.md similarity index 100% rename from linux/postgres/12/README.md rename to linux/ecosystem/postgres/12/README.md diff --git a/linux/ecosystem/postgres/12/docker-compose.yml b/linux/ecosystem/postgres/12/docker-compose.yml new file mode 100644 index 000000000..227aafbb4 --- /dev/null +++ b/linux/ecosystem/postgres/12/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:12" + build: + context: . diff --git a/linux/ecosystem/postgres/12/docker-entrypoint.sh b/linux/ecosystem/postgres/12/docker-entrypoint.sh new file mode 100755 index 000000000..ac197eed5 --- /dev/null +++ b/linux/ecosystem/postgres/12/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_WALDIR" ]; then + mkdir -p "$POSTGRES_INITDB_WALDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_WALDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_WALDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_WALDIR" ]; then + set -- --waldir "$POSTGRES_INITDB_WALDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/ecosystem/postgres/13/Dockerfile b/linux/ecosystem/postgres/13/Dockerfile new file mode 100644 index 000000000..e8cbe256b --- /dev/null +++ b/linux/ecosystem/postgres/13/Dockerfile @@ -0,0 +1,90 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/13/p/postgresql-13/ +#################################################################################################################################### +ENV PG_MAJOR 13 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] diff --git a/linux/ecosystem/postgres/13/Makefile b/linux/ecosystem/postgres/13/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/13/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/8.2/README.md b/linux/ecosystem/postgres/13/README.md similarity index 100% rename from linux/postgres/8.2/README.md rename to linux/ecosystem/postgres/13/README.md diff --git a/linux/ecosystem/postgres/13/docker-compose.yml b/linux/ecosystem/postgres/13/docker-compose.yml new file mode 100644 index 000000000..04033e531 --- /dev/null +++ b/linux/ecosystem/postgres/13/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:13" + build: + context: . diff --git a/linux/ecosystem/postgres/13/docker-entrypoint.sh b/linux/ecosystem/postgres/13/docker-entrypoint.sh new file mode 100755 index 000000000..eeeac649d --- /dev/null +++ b/linux/ecosystem/postgres/13/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_WALDIR" ]; then + mkdir -p "$POSTGRES_INITDB_WALDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_WALDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_WALDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_WALDIR" ]; then + set -- --waldir "$POSTGRES_INITDB_WALDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/ecosystem/postgres/14/Dockerfile b/linux/ecosystem/postgres/14/Dockerfile new file mode 100644 index 000000000..8cae46765 --- /dev/null +++ b/linux/ecosystem/postgres/14/Dockerfile @@ -0,0 +1,90 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/14/p/postgresql-14/ +#################################################################################################################################### +ENV PG_MAJOR 14 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] diff --git a/linux/ecosystem/postgres/14/Makefile b/linux/ecosystem/postgres/14/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/14/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/8.3/README.md b/linux/ecosystem/postgres/14/README.md similarity index 100% rename from linux/postgres/8.3/README.md rename to linux/ecosystem/postgres/14/README.md diff --git a/linux/ecosystem/postgres/14/docker-compose.yml b/linux/ecosystem/postgres/14/docker-compose.yml new file mode 100644 index 000000000..cb1c7d2a6 --- /dev/null +++ b/linux/ecosystem/postgres/14/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:14" + build: + context: . diff --git a/linux/ecosystem/postgres/14/docker-entrypoint.sh b/linux/ecosystem/postgres/14/docker-entrypoint.sh new file mode 100755 index 000000000..eeeac649d --- /dev/null +++ b/linux/ecosystem/postgres/14/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_WALDIR" ]; then + mkdir -p "$POSTGRES_INITDB_WALDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_WALDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_WALDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_WALDIR" ]; then + set -- --waldir "$POSTGRES_INITDB_WALDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/ecosystem/postgres/8.2/Dockerfile b/linux/ecosystem/postgres/8.2/Dockerfile new file mode 100644 index 000000000..619fe9690 --- /dev/null +++ b/linux/ecosystem/postgres/8.2/Dockerfile @@ -0,0 +1,90 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/8.2/p/postgresql-8.2/ +#################################################################################################################################### +ENV PG_MAJOR 8.2 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] diff --git a/linux/ecosystem/postgres/8.2/Makefile b/linux/ecosystem/postgres/8.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/8.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/8.4/README.md b/linux/ecosystem/postgres/8.2/README.md similarity index 100% rename from linux/postgres/8.4/README.md rename to linux/ecosystem/postgres/8.2/README.md diff --git a/linux/ecosystem/postgres/8.2/docker-compose.yml b/linux/ecosystem/postgres/8.2/docker-compose.yml new file mode 100644 index 000000000..7603529da --- /dev/null +++ b/linux/ecosystem/postgres/8.2/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:8.2" + build: + context: . diff --git a/linux/ecosystem/postgres/8.2/docker-entrypoint.sh b/linux/ecosystem/postgres/8.2/docker-entrypoint.sh new file mode 100755 index 000000000..7e74d0c7c --- /dev/null +++ b/linux/ecosystem/postgres/8.2/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + mkdir -p "$POSTGRES_INITDB_XLOGDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_XLOGDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_XLOGDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + set -- --xlogdir "$POSTGRES_INITDB_XLOGDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/ecosystem/postgres/8.3/Dockerfile b/linux/ecosystem/postgres/8.3/Dockerfile new file mode 100644 index 000000000..ee1e3ebcf --- /dev/null +++ b/linux/ecosystem/postgres/8.3/Dockerfile @@ -0,0 +1,91 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/8.3/p/postgresql-8.3/ +#################################################################################################################################### +ENV PG_MAJOR 8.3 +ENV PG_VERSION 8.3 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] diff --git a/linux/ecosystem/postgres/8.3/Makefile b/linux/ecosystem/postgres/8.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/8.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/9.0/README.md b/linux/ecosystem/postgres/8.3/README.md similarity index 100% rename from linux/postgres/9.0/README.md rename to linux/ecosystem/postgres/8.3/README.md diff --git a/linux/ecosystem/postgres/8.3/docker-compose.yml b/linux/ecosystem/postgres/8.3/docker-compose.yml new file mode 100644 index 000000000..da6e814ca --- /dev/null +++ b/linux/ecosystem/postgres/8.3/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:8.3" + build: + context: . diff --git a/linux/ecosystem/postgres/8.3/docker-entrypoint.sh b/linux/ecosystem/postgres/8.3/docker-entrypoint.sh new file mode 100755 index 000000000..7e74d0c7c --- /dev/null +++ b/linux/ecosystem/postgres/8.3/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + mkdir -p "$POSTGRES_INITDB_XLOGDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_XLOGDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_XLOGDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + set -- --xlogdir "$POSTGRES_INITDB_XLOGDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/ecosystem/postgres/8.4/Dockerfile b/linux/ecosystem/postgres/8.4/Dockerfile new file mode 100644 index 000000000..e24dd3a96 --- /dev/null +++ b/linux/ecosystem/postgres/8.4/Dockerfile @@ -0,0 +1,90 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/8.4/p/postgresql-8.4/ +#################################################################################################################################### +ENV PG_MAJOR 8.4 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] diff --git a/linux/ecosystem/postgres/8.4/Makefile b/linux/ecosystem/postgres/8.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/8.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/9.1/README.md b/linux/ecosystem/postgres/8.4/README.md similarity index 100% rename from linux/postgres/9.1/README.md rename to linux/ecosystem/postgres/8.4/README.md diff --git a/linux/ecosystem/postgres/8.4/docker-compose.yml b/linux/ecosystem/postgres/8.4/docker-compose.yml new file mode 100644 index 000000000..626259e74 --- /dev/null +++ b/linux/ecosystem/postgres/8.4/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:8.4" + build: + context: . diff --git a/linux/ecosystem/postgres/8.4/docker-entrypoint.sh b/linux/ecosystem/postgres/8.4/docker-entrypoint.sh new file mode 100755 index 000000000..7e74d0c7c --- /dev/null +++ b/linux/ecosystem/postgres/8.4/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + mkdir -p "$POSTGRES_INITDB_XLOGDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_XLOGDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_XLOGDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + set -- --xlogdir "$POSTGRES_INITDB_XLOGDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/ecosystem/postgres/9.0/Dockerfile b/linux/ecosystem/postgres/9.0/Dockerfile new file mode 100644 index 000000000..df25f3262 --- /dev/null +++ b/linux/ecosystem/postgres/9.0/Dockerfile @@ -0,0 +1,91 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/9.0/p/postgresql-9.0/ +#################################################################################################################################### +ENV PG_MAJOR 9.0 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] + diff --git a/linux/ecosystem/postgres/9.0/Makefile b/linux/ecosystem/postgres/9.0/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/9.0/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/9.2/README.md b/linux/ecosystem/postgres/9.0/README.md similarity index 100% rename from linux/postgres/9.2/README.md rename to linux/ecosystem/postgres/9.0/README.md diff --git a/linux/ecosystem/postgres/9.0/docker-compose.yml b/linux/ecosystem/postgres/9.0/docker-compose.yml new file mode 100644 index 000000000..2784f7e85 --- /dev/null +++ b/linux/ecosystem/postgres/9.0/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:9.0" + build: + context: . diff --git a/linux/ecosystem/postgres/9.0/docker-entrypoint.sh b/linux/ecosystem/postgres/9.0/docker-entrypoint.sh new file mode 100755 index 000000000..7e74d0c7c --- /dev/null +++ b/linux/ecosystem/postgres/9.0/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + mkdir -p "$POSTGRES_INITDB_XLOGDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_XLOGDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_XLOGDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + set -- --xlogdir "$POSTGRES_INITDB_XLOGDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/ecosystem/postgres/9.1/Dockerfile b/linux/ecosystem/postgres/9.1/Dockerfile new file mode 100644 index 000000000..d204f1d01 --- /dev/null +++ b/linux/ecosystem/postgres/9.1/Dockerfile @@ -0,0 +1,63 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/9.1/p/postgresql-9.1/ +#################################################################################################################################### +ENV PG_MAJOR 9.1 + + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +EXPOSE 5432 +CMD ["postgres"] + diff --git a/linux/ecosystem/postgres/9.1/Makefile b/linux/ecosystem/postgres/9.1/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/9.1/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/9.3/README.md b/linux/ecosystem/postgres/9.1/README.md similarity index 100% rename from linux/postgres/9.3/README.md rename to linux/ecosystem/postgres/9.1/README.md diff --git a/linux/ecosystem/postgres/9.1/docker-compose.yml b/linux/ecosystem/postgres/9.1/docker-compose.yml new file mode 100644 index 000000000..1bffc1c25 --- /dev/null +++ b/linux/ecosystem/postgres/9.1/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:9.1" + build: + context: . diff --git a/linux/ecosystem/postgres/9.1/docker-entrypoint.sh b/linux/ecosystem/postgres/9.1/docker-entrypoint.sh new file mode 100755 index 000000000..7e74d0c7c --- /dev/null +++ b/linux/ecosystem/postgres/9.1/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + mkdir -p "$POSTGRES_INITDB_XLOGDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_XLOGDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_XLOGDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + set -- --xlogdir "$POSTGRES_INITDB_XLOGDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/ecosystem/postgres/9.2/Dockerfile b/linux/ecosystem/postgres/9.2/Dockerfile new file mode 100644 index 000000000..73c9d1483 --- /dev/null +++ b/linux/ecosystem/postgres/9.2/Dockerfile @@ -0,0 +1,91 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/9.2/p/postgresql-9.2/ +#################################################################################################################################### +ENV PG_MAJOR 9.2 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] + diff --git a/linux/ecosystem/postgres/9.2/Makefile b/linux/ecosystem/postgres/9.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/9.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/9.4/README.md b/linux/ecosystem/postgres/9.2/README.md similarity index 100% rename from linux/postgres/9.4/README.md rename to linux/ecosystem/postgres/9.2/README.md diff --git a/linux/ecosystem/postgres/9.2/docker-compose.yml b/linux/ecosystem/postgres/9.2/docker-compose.yml new file mode 100644 index 000000000..4675aeab7 --- /dev/null +++ b/linux/ecosystem/postgres/9.2/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:9.2" + build: + context: . diff --git a/linux/ecosystem/postgres/9.2/docker-entrypoint.sh b/linux/ecosystem/postgres/9.2/docker-entrypoint.sh new file mode 100755 index 000000000..7e74d0c7c --- /dev/null +++ b/linux/ecosystem/postgres/9.2/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + mkdir -p "$POSTGRES_INITDB_XLOGDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_XLOGDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_XLOGDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + set -- --xlogdir "$POSTGRES_INITDB_XLOGDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/ecosystem/postgres/9.3/Dockerfile b/linux/ecosystem/postgres/9.3/Dockerfile new file mode 100644 index 000000000..782e711de --- /dev/null +++ b/linux/ecosystem/postgres/9.3/Dockerfile @@ -0,0 +1,90 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/9.3/p/postgresql-9.3/ +#################################################################################################################################### +ENV PG_MAJOR 9.3 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] diff --git a/linux/ecosystem/postgres/9.3/Makefile b/linux/ecosystem/postgres/9.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/9.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/9.5/README.md b/linux/ecosystem/postgres/9.3/README.md similarity index 100% rename from linux/postgres/9.5/README.md rename to linux/ecosystem/postgres/9.3/README.md diff --git a/linux/ecosystem/postgres/9.3/docker-compose.yml b/linux/ecosystem/postgres/9.3/docker-compose.yml new file mode 100644 index 000000000..de767de0f --- /dev/null +++ b/linux/ecosystem/postgres/9.3/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:9.3" + build: + context: . diff --git a/linux/ecosystem/postgres/9.3/docker-entrypoint.sh b/linux/ecosystem/postgres/9.3/docker-entrypoint.sh new file mode 100755 index 000000000..7e74d0c7c --- /dev/null +++ b/linux/ecosystem/postgres/9.3/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + mkdir -p "$POSTGRES_INITDB_XLOGDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_XLOGDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_XLOGDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + set -- --xlogdir "$POSTGRES_INITDB_XLOGDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/ecosystem/postgres/9.4/Dockerfile b/linux/ecosystem/postgres/9.4/Dockerfile new file mode 100644 index 000000000..d09a1fbb4 --- /dev/null +++ b/linux/ecosystem/postgres/9.4/Dockerfile @@ -0,0 +1,90 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/9.4/p/postgresql-9.4/ +#################################################################################################################################### +ENV PG_MAJOR 9.4 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] diff --git a/linux/ecosystem/postgres/9.4/Makefile b/linux/ecosystem/postgres/9.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/9.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/9.6/README.md b/linux/ecosystem/postgres/9.4/README.md similarity index 100% rename from linux/postgres/9.6/README.md rename to linux/ecosystem/postgres/9.4/README.md diff --git a/linux/ecosystem/postgres/9.4/docker-compose.yml b/linux/ecosystem/postgres/9.4/docker-compose.yml new file mode 100644 index 000000000..c995f335f --- /dev/null +++ b/linux/ecosystem/postgres/9.4/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:9.4" + build: + context: . diff --git a/linux/ecosystem/postgres/9.4/docker-entrypoint.sh b/linux/ecosystem/postgres/9.4/docker-entrypoint.sh new file mode 100755 index 000000000..7e74d0c7c --- /dev/null +++ b/linux/ecosystem/postgres/9.4/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + mkdir -p "$POSTGRES_INITDB_XLOGDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_XLOGDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_XLOGDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + set -- --xlogdir "$POSTGRES_INITDB_XLOGDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/ecosystem/postgres/9.5/Dockerfile b/linux/ecosystem/postgres/9.5/Dockerfile new file mode 100644 index 000000000..29cd92931 --- /dev/null +++ b/linux/ecosystem/postgres/9.5/Dockerfile @@ -0,0 +1,91 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/9.5/p/postgresql-9.5/ +#################################################################################################################################### +ENV PG_MAJOR 9.5 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] diff --git a/linux/ecosystem/postgres/9.5/Makefile b/linux/ecosystem/postgres/9.5/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/9.5/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/README.md b/linux/ecosystem/postgres/9.5/README.md similarity index 100% rename from linux/postgres/README.md rename to linux/ecosystem/postgres/9.5/README.md diff --git a/linux/ecosystem/postgres/9.5/docker-compose.yml b/linux/ecosystem/postgres/9.5/docker-compose.yml new file mode 100644 index 000000000..9130c0618 --- /dev/null +++ b/linux/ecosystem/postgres/9.5/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:9.5" + build: + context: . diff --git a/linux/ecosystem/postgres/9.5/docker-entrypoint.sh b/linux/ecosystem/postgres/9.5/docker-entrypoint.sh new file mode 100755 index 000000000..7e74d0c7c --- /dev/null +++ b/linux/ecosystem/postgres/9.5/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + mkdir -p "$POSTGRES_INITDB_XLOGDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_XLOGDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_XLOGDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_XLOGDIR" ]; then + set -- --xlogdir "$POSTGRES_INITDB_XLOGDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/ecosystem/postgres/9.6/Dockerfile b/linux/ecosystem/postgres/9.6/Dockerfile new file mode 100644 index 000000000..1a4507f5b --- /dev/null +++ b/linux/ecosystem/postgres/9.6/Dockerfile @@ -0,0 +1,90 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/9.6/p/postgresql-9.6/ +#################################################################################################################################### +ENV PG_MAJOR 9.6 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] diff --git a/linux/ecosystem/postgres/9.6/Makefile b/linux/ecosystem/postgres/9.6/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/9.6/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/postgres/latest/README.md b/linux/ecosystem/postgres/9.6/README.md similarity index 100% rename from linux/postgres/latest/README.md rename to linux/ecosystem/postgres/9.6/README.md diff --git a/linux/ecosystem/postgres/9.6/docker-compose.yml b/linux/ecosystem/postgres/9.6/docker-compose.yml new file mode 100644 index 000000000..1dbe2cd46 --- /dev/null +++ b/linux/ecosystem/postgres/9.6/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:9.6" + build: + context: . diff --git a/linux/postgres/10/docker-entrypoint.sh b/linux/ecosystem/postgres/9.6/docker-entrypoint.sh similarity index 100% rename from linux/postgres/10/docker-entrypoint.sh rename to linux/ecosystem/postgres/9.6/docker-entrypoint.sh diff --git a/linux/postgres/AUTHORS b/linux/ecosystem/postgres/AUTHORS similarity index 100% rename from linux/postgres/AUTHORS rename to linux/ecosystem/postgres/AUTHORS diff --git a/linux/postgres/LICENSE b/linux/ecosystem/postgres/LICENSE similarity index 100% rename from linux/postgres/LICENSE rename to linux/ecosystem/postgres/LICENSE diff --git a/linux/ecosystem/postgres/README.md b/linux/ecosystem/postgres/README.md new file mode 100644 index 000000000..7cb08760e --- /dev/null +++ b/linux/ecosystem/postgres/README.md @@ -0,0 +1,364 @@ + + +# Quick reference + +- **Maintained by**: + [the PostgreSQL Docker Community](https://github.com/docker-library/postgres) + +- **Where to get help**: + [the Docker Community Forums](https://forums.docker.com/), [the Docker Community Slack](https://dockr.ly/slack), or [Stack Overflow](https://stackoverflow.com/search?tab=newest&q=docker) + +# Supported tags and respective `Dockerfile` links + +- [`13.1`, `13`, `latest`](https://github.com/docker-library/postgres/blob/25044882a65cdd16e20e317c942d4e9109708d81/13/Dockerfile) +- [`13.1-alpine`, `13-alpine`, `alpine`](https://github.com/docker-library/postgres/blob/b9c080857b880202ebd23c59d33fe86d7a70fea3/13/alpine/Dockerfile) +- [`12.5`, `12`](https://github.com/docker-library/postgres/blob/b17c1440572a0922ed65eb84392b33fd44171ddd/12/Dockerfile) +- [`12.5-alpine`, `12-alpine`](https://github.com/docker-library/postgres/blob/6f58eab268f60c9dfcfe8a7e3fba7499f239236b/12/alpine/Dockerfile) +- [`11.10`, `11`](https://github.com/docker-library/postgres/blob/38841304ddd06dd3b39cc080b2c8fce5a5be8e52/11/Dockerfile) +- [`11.10-alpine`, `11-alpine`](https://github.com/docker-library/postgres/blob/1dcdff4b410936b5b11d1e25c6b60a002b2fc9b9/11/alpine/Dockerfile) +- [`10.15`, `10`](https://github.com/docker-library/postgres/blob/0e903779e979b4cae597f5dfc97fb3eb9d6d77e8/10/Dockerfile) +- [`10.15-alpine`, `10-alpine`](https://github.com/docker-library/postgres/blob/92d7a789c6c8667105894f358eaf50a4b448875a/10/alpine/Dockerfile) +- [`9.6.20`, `9.6`, `9`](https://github.com/docker-library/postgres/blob/c438d9e7bb9f610e7e599ee328832ed98bc0595f/9.6/Dockerfile) +- [`9.6.20-alpine`, `9.6-alpine`, `9-alpine`](https://github.com/docker-library/postgres/blob/0e4676a9bce5f67ec9c3758b2bfa2ff35aec07e6/9.6/alpine/Dockerfile) +- [`9.5.24`, `9.5`](https://github.com/docker-library/postgres/blob/ab0af9c5d95663d33880bbb95eb9d5d188469abf/9.5/Dockerfile) +- [`9.5.24-alpine`, `9.5-alpine`](https://github.com/docker-library/postgres/blob/6b541bc498a02875a81a6ce6e4016ea956171205/9.5/alpine/Dockerfile) + +# Quick reference (cont.) + +- **Where to file issues**: + [https://github.com/docker-library/postgres/issues](https://github.com/docker-library/postgres/issues) + +- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) + [`amd64`](https://hub.docker.com/r/amd64/postgres/), [`arm32v5`](https://hub.docker.com/r/arm32v5/postgres/), [`arm32v6`](https://hub.docker.com/r/arm32v6/postgres/), [`arm32v7`](https://hub.docker.com/r/arm32v7/postgres/), [`arm64v8`](https://hub.docker.com/r/arm64v8/postgres/), [`i386`](https://hub.docker.com/r/i386/postgres/), [`mips64le`](https://hub.docker.com/r/mips64le/postgres/), [`ppc64le`](https://hub.docker.com/r/ppc64le/postgres/), [`s390x`](https://hub.docker.com/r/s390x/postgres/) + +- **Published image artifact details**: + [repo-info repo's `repos/postgres/` directory](https://github.com/docker-library/repo-info/blob/master/repos/postgres) ([history](https://github.com/docker-library/repo-info/commits/master/repos/postgres)) + (image metadata, transfer size, etc) + +- **Image updates**: + [official-images PRs with label `library/postgres`](https://github.com/docker-library/official-images/pulls?q=label%3Alibrary%2Fpostgres) + [official-images repo's `library/postgres` file](https://github.com/docker-library/official-images/blob/master/library/postgres) ([history](https://github.com/docker-library/official-images/commits/master/library/postgres)) + +- **Source of this description**: + [docs repo's `postgres/` directory](https://github.com/docker-library/docs/tree/master/postgres) ([history](https://github.com/docker-library/docs/commits/master/postgres)) + +# What is PostgreSQL? + +PostgreSQL, often simply "Postgres", is an object-relational database management system (ORDBMS) with an emphasis on extensibility and standards-compliance. As a database server, its primary function is to store data, securely and supporting best practices, and retrieve it later, as requested by other software applications, be it those on the same computer or those running on another computer across a network (including the Internet). It can handle workloads ranging from small single-machine applications to large Internet-facing applications with many concurrent users. Recent versions also provide replication of the database itself for security and scalability. + +PostgreSQL implements the majority of the SQL:2011 standard, is ACID-compliant and transactional (including most DDL statements) avoiding locking issues using multiversion concurrency control (MVCC), provides immunity to dirty reads and full serializability; handles complex SQL queries using many indexing methods that are not available in other databases; has updateable views and materialized views, triggers, foreign keys; supports functions and stored procedures, and other expandability, and has a large number of extensions written by third parties. In addition to the possibility of working with the major proprietary and open source databases, PostgreSQL supports migration from them, by its extensive standard SQL support and available migration tools. And if proprietary extensions had been used, by its extensibility that can emulate many through some built-in and third-party open source compatibility extensions, such as for Oracle. + +> [wikipedia.org/wiki/PostgreSQL](https://en.wikipedia.org/wiki/PostgreSQL) + +![logo](https://raw.githubusercontent.com/docker-library/docs/01c12653951b2fe592c1f93a13b4e289ada0e3a1/postgres/logo.png) + +# How to use this image + +## start a postgres instance + +```console +$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres +``` + +The default `postgres` user and database are created in the entrypoint with `initdb`. + +> The postgres database is a default database meant for use by users, utilities and third party applications. +> +> [postgresql.org/docs](http://www.postgresql.org/docs/9.5/interactive/app-initdb.html) + +## ... or via `psql` + +```console +$ docker run -it --rm --network some-network postgres psql -h some-postgres -U postgres +psql (9.5.0) +Type "help" for help. + +postgres=# SELECT 1; + ?column? +---------- + 1 +(1 row) + +``` + +## ... via [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) or [`docker-compose`](https://github.com/docker/compose) + +Example `stack.yml` for `postgres`: + +```yaml +# Use postgres/example user/password credentials +version: '3.1' + +services: + + db: + image: postgres + restart: always + environment: + POSTGRES_PASSWORD: example + + adminer: + image: adminer + restart: always + ports: + - 8080:8080 +``` + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/9efeec18b6b2ed232cf0fbd3914b6211e16e242c/postgres/stack.yml) + +Run `docker stack deploy -c stack.yml postgres` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). + +# How to extend this image + +There are many ways to extend the `postgres` image. Without trying to support every possible use case, here are just a few that we have found useful. + +## Environment Variables + +The PostgreSQL image uses several environment variables which are easy to miss. The only variable required is `POSTGRES_PASSWORD`, the rest are optional. + +**Warning**: the Docker specific variables will only have an effect if you start the container with a data directory that is empty; any pre-existing database will be left untouched on container startup. + +### `POSTGRES_PASSWORD` + +This environment variable is required for you to use the PostgreSQL image. It must not be empty or undefined. This environment variable sets the superuser password for PostgreSQL. The default superuser is defined by the `POSTGRES_USER` environment variable. + +**Note 1:** The PostgreSQL image sets up `trust` authentication locally so you may notice a password is not required when connecting from `localhost` (inside the same container). However, a password will be required if connecting from a different host/container. + +**Note 2:** This variable defines the superuser password in the PostgreSQL instance, as set by the `initdb` script during initial container startup. It has no effect on the `PGPASSWORD` environment variable that may be used by the `psql` client at runtime, as described at [https://www.postgresql.org/docs/10/static/libpq-envars.html](https://www.postgresql.org/docs/10/static/libpq-envars.html). `PGPASSWORD`, if used, will be specified as a separate environment variable. + +### `POSTGRES_USER` + +This optional environment variable is used in conjunction with `POSTGRES_PASSWORD` to set a user and its password. This variable will create the specified user with superuser power and a database with the same name. If it is not specified, then the default user of `postgres` will be used. + +Be aware that if this parameter is specified, PostgreSQL will still show `The files belonging to this database system will be owned by user "postgres"` during initialization. This refers to the Linux system user (from `/etc/passwd` in the image) that the `postgres` daemon runs as, and as such is unrelated to the `POSTGRES_USER` option. See the section titled "Arbitrary `--user` Notes" for more details. + +### `POSTGRES_DB` + +This optional environment variable can be used to define a different name for the default database that is created when the image is first started. If it is not specified, then the value of `POSTGRES_USER` will be used. + +### `POSTGRES_INITDB_ARGS` + +This optional environment variable can be used to send arguments to `postgres initdb`. The value is a space separated string of arguments as `postgres initdb` would expect them. This is useful for adding functionality like data page checksums: `-e POSTGRES_INITDB_ARGS="--data-checksums"`. + +### `POSTGRES_INITDB_WALDIR` + +This optional environment variable can be used to define another location for the Postgres transaction log. By default the transaction log is stored in a subdirectory of the main Postgres data folder (`PGDATA`). Sometimes it can be desireable to store the transaction log in a different directory which may be backed by storage with different performance or reliability characteristics. + +**Note:** on PostgreSQL 9.x, this variable is `POSTGRES_INITDB_XLOGDIR` (reflecting [the changed name of the `--xlogdir` flag to `--waldir` in PostgreSQL 10+](https://wiki.postgresql.org/wiki/New_in_postgres_10#Renaming_of_.22xlog.22_to_.22wal.22_Globally_.28and_location.2Flsn.29)). + +### `POSTGRES_HOST_AUTH_METHOD` + +This optional variable can be used to control the `auth-method` for `host` connections for `all` databases, `all` users, and `all` addresses. If unspecified then [`md5` password authentication](https://www.postgresql.org/docs/current/auth-password.html) is used. On an uninitialized database, this will populate `pg_hba.conf` via this approximate line: + +```console +echo "host all all all $POSTGRES_HOST_AUTH_METHOD" >> pg_hba.conf +``` + +See the PostgreSQL documentation on [`pg_hba.conf`](https://www.postgresql.org/docs/current/auth-pg-hba-conf.html) for more information about possible values and their meanings. + +**Note 1:** It is not recommended to use [`trust`](https://www.postgresql.org/docs/current/auth-trust.html) since it allows anyone to connect without a password, even if one is set (like via `POSTGRES_PASSWORD`). For more information see the PostgreSQL documentation on [*Trust Authentication*](https://www.postgresql.org/docs/current/auth-trust.html). + +**Note 2:** If you set `POSTGRES_HOST_AUTH_METHOD` to `trust`, then `POSTGRES_PASSWORD` is not required. + +### `PGDATA` + +This optional variable can be used to define another location - like a subdirectory - for the database files. The default is `/var/lib/postgresql/data`. If the data volume you're using is a filesystem mountpoint (like with GCE persistent disks) or remote folder that cannot be chowned to the `postgres` user (like some NFS mounts), Postgres `initdb` recommends a subdirectory be created to contain the data. + +For example: + +```console +$ docker run -d \ + --name some-postgres \ + -e POSTGRES_PASSWORD=mysecretpassword \ + -e PGDATA=/var/lib/postgresql/data/pgdata \ + -v /custom/mount:/var/lib/postgresql/data \ + postgres +``` + +This is an environment variable that is not Docker specific. Because the variable is used by the `postgres` server binary (see the [PostgreSQL docs](https://www.postgresql.org/docs/11/app-postgres.html#id-1.9.5.14.7)), the entrypoint script takes it into account. + +## Docker Secrets + +As an alternative to passing sensitive information via environment variables, `_FILE` may be appended to some of the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in `/run/secrets/` files. For example: + +```console +$ docker run --name some-postgres -e POSTGRES_PASSWORD_FILE=/run/secrets/postgres-passwd -d postgres +``` + +Currently, this is only supported for `POSTGRES_INITDB_ARGS`, `POSTGRES_PASSWORD`, `POSTGRES_USER`, and `POSTGRES_DB`. + +## Initialization scripts + +If you would like to do additional initialization in an image derived from this one, add one or more `*.sql`, `*.sql.gz`, or `*.sh` scripts under `/docker-entrypoint-initdb.d` (creating the directory if necessary). After the entrypoint calls `initdb` to create the default `postgres` user and database, it will run any `*.sql` files, run any executable `*.sh` scripts, and source any non-executable `*.sh` scripts found in that directory to do further initialization before starting the service. + +**Warning**: scripts in `/docker-entrypoint-initdb.d` are only run if you start the container with a data directory that is empty; any pre-existing database will be left untouched on container startup. One common problem is that if one of your `/docker-entrypoint-initdb.d` scripts fails (which will cause the entrypoint script to exit) and your orchestrator restarts the container with the already initialized data directory, it will not continue on with your scripts. + +For example, to add an additional user and database, add the following to `/docker-entrypoint-initdb.d/init-user-db.sh`: + +```bash +#!/bin/bash +set -e + +psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL + CREATE USER docker; + CREATE DATABASE docker; + GRANT ALL PRIVILEGES ON DATABASE docker TO docker; +EOSQL +``` + +These initialization files will be executed in sorted name order as defined by the current locale, which defaults to `en_US.utf8`. Any `*.sql` files will be executed by `POSTGRES_USER`, which defaults to the `postgres` superuser. It is recommended that any `psql` commands that are run inside of a `*.sh` script be executed as `POSTGRES_USER` by using the `--username "$POSTGRES_USER"` flag. This user will be able to connect without a password due to the presence of `trust` authentication for Unix socket connections made inside the container. + +Additionally, as of [docker-library/postgres#253](https://github.com/docker-library/postgres/pull/253), these initialization scripts are run as the `postgres` user (or as the "semi-arbitrary user" specified with the `--user` flag to `docker run`; see the section titled "Arbitrary `--user` Notes" for more details). Also, as of [docker-library/postgres#440](https://github.com/docker-library/postgres/pull/440), the temporary daemon started for these initialization scripts listens only on the Unix socket, so any `psql` usage should drop the hostname portion (see [docker-library/postgres#474 (comment)](https://github.com/docker-library/postgres/issues/474#issuecomment-416914741) for example). + +## Database Configuration + +There are many ways to set PostgreSQL server configuration. For information on what is available to configure, see the postgresql.org [docs](https://www.postgresql.org/docs/current/static/runtime-config.html) for the specific version of PostgreSQL that you are running. Here are a few options for setting configuration: + +- Use a custom config file. Create a config file and get it into the container. If you need a starting place for your config file you can use the sample provided by PostgreSQL which is available in the container at `/usr/share/postgresql/postgresql.conf.sample` (`/usr/local/share/postgresql/postgresql.conf.sample` in Alpine variants). + + - **Important note:** you must set `listen_addresses = '*'`so that other containers will be able to access postgres. + + ```console + $ # get the default config + $ docker run -i --rm postgres cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf + + $ # customize the config + + $ # run postgres with custom config + $ docker run -d --name some-postgres -v "$PWD/my-postgres.conf":/etc/postgresql/postgresql.conf -e POSTGRES_PASSWORD=mysecretpassword postgres -c 'config_file=/etc/postgresql/postgresql.conf' + ``` + +- Set options directly on the run line. The entrypoint script is made so that any options passed to the docker command will be passed along to the `postgres` server daemon. From the [docs](https://www.postgresql.org/docs/current/static/app-postgres.html) we see that any option available in a `.conf` file can be set via `-c`. + + ```console + $ docker run -d --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword postgres -c shared_buffers=256MB -c max_connections=200 + ``` + +## Locale Customization + +You can extend the Debian-based images with a simple `Dockerfile` to set a different locale. The following example will set the default locale to `de_DE.utf8`: + +```dockerfile +FROM postgres:9.4 +RUN localedef -i de_DE -c -f UTF-8 -A /usr/share/locale/locale.alias de_DE.UTF-8 +ENV LANG de_DE.utf8 +``` + +Since database initialization only happens on container startup, this allows us to set the language before it is created. + +Also of note, Alpine-based variants do *not* support locales; see ["Character sets and locale" in the musl documentation](https://wiki.musl-libc.org/functional-differences-from-glibc.html#Character-sets-and-locale) for more details. + +## Additional Extensions + +When using the default (Debian-based) variants, installing additional extensions (such as PostGIS) should be as simple as installing the relevant packages (see [github.com/postgis/docker-postgis](https://github.com/postgis/docker-postgis/blob/4eb614133d6aa87bfc5c952d24b7eb1f499e5c7c/12-3.0/Dockerfile) for a concrete example). + +When using the Alpine variants, any postgres extension not listed in [postgres-contrib](https://www.postgresql.org/docs/10/static/contrib.html) will need to be compiled in your own image (again, see [github.com/postgis/docker-postgis](https://github.com/postgis/docker-postgis/blob/4eb614133d6aa87bfc5c952d24b7eb1f499e5c7c/12-3.0/alpine/Dockerfile) for a concrete example). + +# Arbitrary `--user` Notes + +As of [docker-library/postgres#253](https://github.com/docker-library/postgres/pull/253), this image supports running as a (mostly) arbitrary user via `--user` on `docker run`. + +The main caveat to note is that `postgres` doesn't care what UID it runs as (as long as the owner of `/var/lib/postgresql/data` matches), but `initdb` *does* care (and needs the user to exist in `/etc/passwd`): + +```console +$ docker run -it --rm --user www-data -e POSTGRES_PASSWORD=mysecretpassword postgres +The files belonging to this database system will be owned by user "www-data". +... + +$ docker run -it --rm --user 1000:1000 -e POSTGRES_PASSWORD=mysecretpassword postgres +initdb: could not look up effective user ID 1000: user does not exist +``` + +The three easiest ways to get around this: + +1. use the Debian variants (not the Alpine variants) and thus allow the image to use [the `nss_wrapper` library](https://cwrap.org/nss_wrapper.html) to "fake" `/etc/passwd` contents for you (see [docker-library/postgres#448](https://github.com/docker-library/postgres/pull/448) for more details) + +2. bind-mount `/etc/passwd` read-only from the host (if the UID you desire is a valid user on your host): + + ```console + $ docker run -it --rm --user "$(id -u):$(id -g)" -v /etc/passwd:/etc/passwd:ro -e POSTGRES_PASSWORD=mysecretpassword postgres + The files belonging to this database system will be owned by user "jsmith". + ... + ``` + +3. initialize the target directory separately from the final runtime (with a `chown` in between): + + ```console + $ docker volume create pgdata + $ docker run -it --rm -v pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=mysecretpassword postgres + The files belonging to this database system will be owned by user "postgres". + ... + ( once it's finished initializing successfully and is waiting for connections, stop it ) + $ docker run -it --rm -v pgdata:/var/lib/postgresql/data bash chown -R 1000:1000 /var/lib/postgresql/data + $ docker run -it --rm --user 1000:1000 -v pgdata:/var/lib/postgresql/data postgres + LOG: database system was shut down at 2017-01-20 00:03:23 UTC + LOG: MultiXact member wraparound protections are now enabled + LOG: autovacuum launcher started + LOG: database system is ready to accept connections + ``` + +# Caveats + +If there is no database when `postgres` starts in a container, then `postgres` will create the default database for you. While this is the expected behavior of `postgres`, this means that it will not accept incoming connections during that time. This may cause issues when using automation tools, such as `docker-compose`, that start several containers simultaneously. + +Also note that the default `/dev/shm` size for containers is 64MB. If the shared memory is exhausted you will encounter `ERROR: could not resize shared memory segment . . . : No space left on device`. You will want to pass [`--shm-size=256MB`](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources) for example to `docker run`, or alternatively in [`docker-compose`](https://docs.docker.com/compose/compose-file/#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir) + +See ["IPVS connection timeout issue" in the Docker Success Center](https://success.docker.com/article/ipvs-connection-timeout-issue) for details about IPVS connection timeouts which will affect long-running idle connections to PostgreSQL in Swarm Mode using overlay networks. + +## Where to Store Data + +**Important note:** There are several ways to store data used by applications that run in Docker containers. We encourage users of the `postgres` images to familiarize themselves with the options available, including: + +- Let Docker manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). This is the default and is easy and fairly transparent to the user. The downside is that the files may be hard to locate for tools and applications that run directly on the host system, i.e. outside containers. +- Create a data directory on the host system (outside the container) and [mount this to a directory visible from inside the container](https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database files in a known location on the host system, and makes it easy for tools and applications on the host system to access the files. The downside is that the user needs to make sure that the directory exists, and that e.g. directory permissions and other security mechanisms on the host system are set up correctly. + +The Docker documentation is a good starting point for understanding the different storage options and variations, and there are multiple blogs and forum postings that discuss and give advice in this area. We will simply show the basic procedure here for the latter option above: + +1. Create a data directory on a suitable volume on your host system, e.g. `/my/own/datadir`. +2. Start your `postgres` container like this: + + ```console + $ docker run --name some-postgres -v /my/own/datadir:/var/lib/postgresql/data -e POSTGRES_PASSWORD=mysecretpassword -d postgres:tag + ``` + +The `-v /my/own/datadir:/var/lib/postgresql/data` part of the command mounts the `/my/own/datadir` directory from the underlying host system as `/var/lib/postgresql/data` inside the container, where PostgreSQL by default will write its data files. + +# Image Variants + +The `postgres` images come in many flavors, each designed for a specific use case. + +## `postgres:` + +This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of. + +## `postgres:-alpine` + +This image is based on the popular [Alpine Linux project](https://alpinelinux.org), available in [the `alpine` official image](https://hub.docker.com/_/alpine). Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general. + +This variant is highly recommended when final image size being as small as possible is desired. The main caveat to note is that it does use [musl libc](https://musl.libc.org) instead of [glibc and friends](https://www.etalabs.net/compare_libcs.html), so certain software might run into issues depending on the depth of their libc requirements. However, most software doesn't have an issue with this, so this variant is usually a very safe choice. See [this Hacker News comment thread](https://news.ycombinator.com/item?id=10782897) for more discussion of the issues that might arise and some pro/con comparisons of using Alpine-based images. + +To minimize image size, it's uncommon for additional related tools (such as `git` or `bash`) to be included in Alpine-based images. Using this image as a base, add the things you need in your own Dockerfile (see the [`alpine` image description](https://hub.docker.com/_/alpine/) for examples of how to install packages if you are unfamiliar). + +# License + +View [license information](https://www.postgresql.org/about/licence/) for the software contained in this image. + +As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained). + +Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `postgres/` directory](https://github.com/docker-library/repo-info/tree/master/repos/postgres). + +As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within. diff --git a/linux/ecosystem/postgres/latest/Dockerfile b/linux/ecosystem/postgres/latest/Dockerfile new file mode 100644 index 000000000..8cae46765 --- /dev/null +++ b/linux/ecosystem/postgres/latest/Dockerfile @@ -0,0 +1,90 @@ +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +#################################################################################################################################### +# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added +#################################################################################################################################### + +RUN groupadd -r postgres && useradd -r -g postgres postgres + +#################################################################################################################################### +# grab gosu for easy step-down from root +#################################################################################################################################### +ENV GOSU_VER 1.14 + +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ + && curl -o /usr/local/bin/gosu -SL https://github.com/tianon/gosu/releases/download/$GOSU_VER/gosu-amd64 \ + && chmod +x /usr/local/bin/gosu \ + && apt-get purge -y --auto-remove curl + +#################################################################################################################################### +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +#################################################################################################################################### + +RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ + && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 +ENV LANG en_US.utf8 + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 + +#################################################################################################################################### +# http://apt.postgresql.org/pub/repos/apt/pool/14/p/postgresql-14/ +#################################################################################################################################### +ENV PG_MAJOR 14 + +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ + echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list + +RUN apt-get update \ + && apt-get install -y postgresql-common \ + && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ + && apt-get install -y \ + postgresql-$PG_MAJOR \ + postgresql-contrib-$PG_MAJOR \ + && rm -rf /var/lib/apt/lists/* + +RUN mkdir /docker-entrypoint-initdb.d +RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql + +ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH +ENV PGDATA /var/lib/postgresql/data +VOLUME /var/lib/postgresql/data +WORKDIR /var/lib/postgresql/data + +COPY ./docker-entrypoint.sh / + +ENTRYPOINT ["/docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5432 +CMD ["postgres"] diff --git a/linux/ecosystem/postgres/latest/Makefile b/linux/ecosystem/postgres/latest/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/postgres/latest/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/postgres/latest/README.md b/linux/ecosystem/postgres/latest/README.md new file mode 100644 index 000000000..7cb08760e --- /dev/null +++ b/linux/ecosystem/postgres/latest/README.md @@ -0,0 +1,364 @@ + + +# Quick reference + +- **Maintained by**: + [the PostgreSQL Docker Community](https://github.com/docker-library/postgres) + +- **Where to get help**: + [the Docker Community Forums](https://forums.docker.com/), [the Docker Community Slack](https://dockr.ly/slack), or [Stack Overflow](https://stackoverflow.com/search?tab=newest&q=docker) + +# Supported tags and respective `Dockerfile` links + +- [`13.1`, `13`, `latest`](https://github.com/docker-library/postgres/blob/25044882a65cdd16e20e317c942d4e9109708d81/13/Dockerfile) +- [`13.1-alpine`, `13-alpine`, `alpine`](https://github.com/docker-library/postgres/blob/b9c080857b880202ebd23c59d33fe86d7a70fea3/13/alpine/Dockerfile) +- [`12.5`, `12`](https://github.com/docker-library/postgres/blob/b17c1440572a0922ed65eb84392b33fd44171ddd/12/Dockerfile) +- [`12.5-alpine`, `12-alpine`](https://github.com/docker-library/postgres/blob/6f58eab268f60c9dfcfe8a7e3fba7499f239236b/12/alpine/Dockerfile) +- [`11.10`, `11`](https://github.com/docker-library/postgres/blob/38841304ddd06dd3b39cc080b2c8fce5a5be8e52/11/Dockerfile) +- [`11.10-alpine`, `11-alpine`](https://github.com/docker-library/postgres/blob/1dcdff4b410936b5b11d1e25c6b60a002b2fc9b9/11/alpine/Dockerfile) +- [`10.15`, `10`](https://github.com/docker-library/postgres/blob/0e903779e979b4cae597f5dfc97fb3eb9d6d77e8/10/Dockerfile) +- [`10.15-alpine`, `10-alpine`](https://github.com/docker-library/postgres/blob/92d7a789c6c8667105894f358eaf50a4b448875a/10/alpine/Dockerfile) +- [`9.6.20`, `9.6`, `9`](https://github.com/docker-library/postgres/blob/c438d9e7bb9f610e7e599ee328832ed98bc0595f/9.6/Dockerfile) +- [`9.6.20-alpine`, `9.6-alpine`, `9-alpine`](https://github.com/docker-library/postgres/blob/0e4676a9bce5f67ec9c3758b2bfa2ff35aec07e6/9.6/alpine/Dockerfile) +- [`9.5.24`, `9.5`](https://github.com/docker-library/postgres/blob/ab0af9c5d95663d33880bbb95eb9d5d188469abf/9.5/Dockerfile) +- [`9.5.24-alpine`, `9.5-alpine`](https://github.com/docker-library/postgres/blob/6b541bc498a02875a81a6ce6e4016ea956171205/9.5/alpine/Dockerfile) + +# Quick reference (cont.) + +- **Where to file issues**: + [https://github.com/docker-library/postgres/issues](https://github.com/docker-library/postgres/issues) + +- **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64)) + [`amd64`](https://hub.docker.com/r/amd64/postgres/), [`arm32v5`](https://hub.docker.com/r/arm32v5/postgres/), [`arm32v6`](https://hub.docker.com/r/arm32v6/postgres/), [`arm32v7`](https://hub.docker.com/r/arm32v7/postgres/), [`arm64v8`](https://hub.docker.com/r/arm64v8/postgres/), [`i386`](https://hub.docker.com/r/i386/postgres/), [`mips64le`](https://hub.docker.com/r/mips64le/postgres/), [`ppc64le`](https://hub.docker.com/r/ppc64le/postgres/), [`s390x`](https://hub.docker.com/r/s390x/postgres/) + +- **Published image artifact details**: + [repo-info repo's `repos/postgres/` directory](https://github.com/docker-library/repo-info/blob/master/repos/postgres) ([history](https://github.com/docker-library/repo-info/commits/master/repos/postgres)) + (image metadata, transfer size, etc) + +- **Image updates**: + [official-images PRs with label `library/postgres`](https://github.com/docker-library/official-images/pulls?q=label%3Alibrary%2Fpostgres) + [official-images repo's `library/postgres` file](https://github.com/docker-library/official-images/blob/master/library/postgres) ([history](https://github.com/docker-library/official-images/commits/master/library/postgres)) + +- **Source of this description**: + [docs repo's `postgres/` directory](https://github.com/docker-library/docs/tree/master/postgres) ([history](https://github.com/docker-library/docs/commits/master/postgres)) + +# What is PostgreSQL? + +PostgreSQL, often simply "Postgres", is an object-relational database management system (ORDBMS) with an emphasis on extensibility and standards-compliance. As a database server, its primary function is to store data, securely and supporting best practices, and retrieve it later, as requested by other software applications, be it those on the same computer or those running on another computer across a network (including the Internet). It can handle workloads ranging from small single-machine applications to large Internet-facing applications with many concurrent users. Recent versions also provide replication of the database itself for security and scalability. + +PostgreSQL implements the majority of the SQL:2011 standard, is ACID-compliant and transactional (including most DDL statements) avoiding locking issues using multiversion concurrency control (MVCC), provides immunity to dirty reads and full serializability; handles complex SQL queries using many indexing methods that are not available in other databases; has updateable views and materialized views, triggers, foreign keys; supports functions and stored procedures, and other expandability, and has a large number of extensions written by third parties. In addition to the possibility of working with the major proprietary and open source databases, PostgreSQL supports migration from them, by its extensive standard SQL support and available migration tools. And if proprietary extensions had been used, by its extensibility that can emulate many through some built-in and third-party open source compatibility extensions, such as for Oracle. + +> [wikipedia.org/wiki/PostgreSQL](https://en.wikipedia.org/wiki/PostgreSQL) + +![logo](https://raw.githubusercontent.com/docker-library/docs/01c12653951b2fe592c1f93a13b4e289ada0e3a1/postgres/logo.png) + +# How to use this image + +## start a postgres instance + +```console +$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres +``` + +The default `postgres` user and database are created in the entrypoint with `initdb`. + +> The postgres database is a default database meant for use by users, utilities and third party applications. +> +> [postgresql.org/docs](http://www.postgresql.org/docs/9.5/interactive/app-initdb.html) + +## ... or via `psql` + +```console +$ docker run -it --rm --network some-network postgres psql -h some-postgres -U postgres +psql (9.5.0) +Type "help" for help. + +postgres=# SELECT 1; + ?column? +---------- + 1 +(1 row) + +``` + +## ... via [`docker stack deploy`](https://docs.docker.com/engine/reference/commandline/stack_deploy/) or [`docker-compose`](https://github.com/docker/compose) + +Example `stack.yml` for `postgres`: + +```yaml +# Use postgres/example user/password credentials +version: '3.1' + +services: + + db: + image: postgres + restart: always + environment: + POSTGRES_PASSWORD: example + + adminer: + image: adminer + restart: always + ports: + - 8080:8080 +``` + +[![Try in PWD](https://github.com/play-with-docker/stacks/raw/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/docker-library/docs/9efeec18b6b2ed232cf0fbd3914b6211e16e242c/postgres/stack.yml) + +Run `docker stack deploy -c stack.yml postgres` (or `docker-compose -f stack.yml up`), wait for it to initialize completely, and visit `http://swarm-ip:8080`, `http://localhost:8080`, or `http://host-ip:8080` (as appropriate). + +# How to extend this image + +There are many ways to extend the `postgres` image. Without trying to support every possible use case, here are just a few that we have found useful. + +## Environment Variables + +The PostgreSQL image uses several environment variables which are easy to miss. The only variable required is `POSTGRES_PASSWORD`, the rest are optional. + +**Warning**: the Docker specific variables will only have an effect if you start the container with a data directory that is empty; any pre-existing database will be left untouched on container startup. + +### `POSTGRES_PASSWORD` + +This environment variable is required for you to use the PostgreSQL image. It must not be empty or undefined. This environment variable sets the superuser password for PostgreSQL. The default superuser is defined by the `POSTGRES_USER` environment variable. + +**Note 1:** The PostgreSQL image sets up `trust` authentication locally so you may notice a password is not required when connecting from `localhost` (inside the same container). However, a password will be required if connecting from a different host/container. + +**Note 2:** This variable defines the superuser password in the PostgreSQL instance, as set by the `initdb` script during initial container startup. It has no effect on the `PGPASSWORD` environment variable that may be used by the `psql` client at runtime, as described at [https://www.postgresql.org/docs/10/static/libpq-envars.html](https://www.postgresql.org/docs/10/static/libpq-envars.html). `PGPASSWORD`, if used, will be specified as a separate environment variable. + +### `POSTGRES_USER` + +This optional environment variable is used in conjunction with `POSTGRES_PASSWORD` to set a user and its password. This variable will create the specified user with superuser power and a database with the same name. If it is not specified, then the default user of `postgres` will be used. + +Be aware that if this parameter is specified, PostgreSQL will still show `The files belonging to this database system will be owned by user "postgres"` during initialization. This refers to the Linux system user (from `/etc/passwd` in the image) that the `postgres` daemon runs as, and as such is unrelated to the `POSTGRES_USER` option. See the section titled "Arbitrary `--user` Notes" for more details. + +### `POSTGRES_DB` + +This optional environment variable can be used to define a different name for the default database that is created when the image is first started. If it is not specified, then the value of `POSTGRES_USER` will be used. + +### `POSTGRES_INITDB_ARGS` + +This optional environment variable can be used to send arguments to `postgres initdb`. The value is a space separated string of arguments as `postgres initdb` would expect them. This is useful for adding functionality like data page checksums: `-e POSTGRES_INITDB_ARGS="--data-checksums"`. + +### `POSTGRES_INITDB_WALDIR` + +This optional environment variable can be used to define another location for the Postgres transaction log. By default the transaction log is stored in a subdirectory of the main Postgres data folder (`PGDATA`). Sometimes it can be desireable to store the transaction log in a different directory which may be backed by storage with different performance or reliability characteristics. + +**Note:** on PostgreSQL 9.x, this variable is `POSTGRES_INITDB_XLOGDIR` (reflecting [the changed name of the `--xlogdir` flag to `--waldir` in PostgreSQL 10+](https://wiki.postgresql.org/wiki/New_in_postgres_10#Renaming_of_.22xlog.22_to_.22wal.22_Globally_.28and_location.2Flsn.29)). + +### `POSTGRES_HOST_AUTH_METHOD` + +This optional variable can be used to control the `auth-method` for `host` connections for `all` databases, `all` users, and `all` addresses. If unspecified then [`md5` password authentication](https://www.postgresql.org/docs/current/auth-password.html) is used. On an uninitialized database, this will populate `pg_hba.conf` via this approximate line: + +```console +echo "host all all all $POSTGRES_HOST_AUTH_METHOD" >> pg_hba.conf +``` + +See the PostgreSQL documentation on [`pg_hba.conf`](https://www.postgresql.org/docs/current/auth-pg-hba-conf.html) for more information about possible values and their meanings. + +**Note 1:** It is not recommended to use [`trust`](https://www.postgresql.org/docs/current/auth-trust.html) since it allows anyone to connect without a password, even if one is set (like via `POSTGRES_PASSWORD`). For more information see the PostgreSQL documentation on [*Trust Authentication*](https://www.postgresql.org/docs/current/auth-trust.html). + +**Note 2:** If you set `POSTGRES_HOST_AUTH_METHOD` to `trust`, then `POSTGRES_PASSWORD` is not required. + +### `PGDATA` + +This optional variable can be used to define another location - like a subdirectory - for the database files. The default is `/var/lib/postgresql/data`. If the data volume you're using is a filesystem mountpoint (like with GCE persistent disks) or remote folder that cannot be chowned to the `postgres` user (like some NFS mounts), Postgres `initdb` recommends a subdirectory be created to contain the data. + +For example: + +```console +$ docker run -d \ + --name some-postgres \ + -e POSTGRES_PASSWORD=mysecretpassword \ + -e PGDATA=/var/lib/postgresql/data/pgdata \ + -v /custom/mount:/var/lib/postgresql/data \ + postgres +``` + +This is an environment variable that is not Docker specific. Because the variable is used by the `postgres` server binary (see the [PostgreSQL docs](https://www.postgresql.org/docs/11/app-postgres.html#id-1.9.5.14.7)), the entrypoint script takes it into account. + +## Docker Secrets + +As an alternative to passing sensitive information via environment variables, `_FILE` may be appended to some of the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in `/run/secrets/` files. For example: + +```console +$ docker run --name some-postgres -e POSTGRES_PASSWORD_FILE=/run/secrets/postgres-passwd -d postgres +``` + +Currently, this is only supported for `POSTGRES_INITDB_ARGS`, `POSTGRES_PASSWORD`, `POSTGRES_USER`, and `POSTGRES_DB`. + +## Initialization scripts + +If you would like to do additional initialization in an image derived from this one, add one or more `*.sql`, `*.sql.gz`, or `*.sh` scripts under `/docker-entrypoint-initdb.d` (creating the directory if necessary). After the entrypoint calls `initdb` to create the default `postgres` user and database, it will run any `*.sql` files, run any executable `*.sh` scripts, and source any non-executable `*.sh` scripts found in that directory to do further initialization before starting the service. + +**Warning**: scripts in `/docker-entrypoint-initdb.d` are only run if you start the container with a data directory that is empty; any pre-existing database will be left untouched on container startup. One common problem is that if one of your `/docker-entrypoint-initdb.d` scripts fails (which will cause the entrypoint script to exit) and your orchestrator restarts the container with the already initialized data directory, it will not continue on with your scripts. + +For example, to add an additional user and database, add the following to `/docker-entrypoint-initdb.d/init-user-db.sh`: + +```bash +#!/bin/bash +set -e + +psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL + CREATE USER docker; + CREATE DATABASE docker; + GRANT ALL PRIVILEGES ON DATABASE docker TO docker; +EOSQL +``` + +These initialization files will be executed in sorted name order as defined by the current locale, which defaults to `en_US.utf8`. Any `*.sql` files will be executed by `POSTGRES_USER`, which defaults to the `postgres` superuser. It is recommended that any `psql` commands that are run inside of a `*.sh` script be executed as `POSTGRES_USER` by using the `--username "$POSTGRES_USER"` flag. This user will be able to connect without a password due to the presence of `trust` authentication for Unix socket connections made inside the container. + +Additionally, as of [docker-library/postgres#253](https://github.com/docker-library/postgres/pull/253), these initialization scripts are run as the `postgres` user (or as the "semi-arbitrary user" specified with the `--user` flag to `docker run`; see the section titled "Arbitrary `--user` Notes" for more details). Also, as of [docker-library/postgres#440](https://github.com/docker-library/postgres/pull/440), the temporary daemon started for these initialization scripts listens only on the Unix socket, so any `psql` usage should drop the hostname portion (see [docker-library/postgres#474 (comment)](https://github.com/docker-library/postgres/issues/474#issuecomment-416914741) for example). + +## Database Configuration + +There are many ways to set PostgreSQL server configuration. For information on what is available to configure, see the postgresql.org [docs](https://www.postgresql.org/docs/current/static/runtime-config.html) for the specific version of PostgreSQL that you are running. Here are a few options for setting configuration: + +- Use a custom config file. Create a config file and get it into the container. If you need a starting place for your config file you can use the sample provided by PostgreSQL which is available in the container at `/usr/share/postgresql/postgresql.conf.sample` (`/usr/local/share/postgresql/postgresql.conf.sample` in Alpine variants). + + - **Important note:** you must set `listen_addresses = '*'`so that other containers will be able to access postgres. + + ```console + $ # get the default config + $ docker run -i --rm postgres cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf + + $ # customize the config + + $ # run postgres with custom config + $ docker run -d --name some-postgres -v "$PWD/my-postgres.conf":/etc/postgresql/postgresql.conf -e POSTGRES_PASSWORD=mysecretpassword postgres -c 'config_file=/etc/postgresql/postgresql.conf' + ``` + +- Set options directly on the run line. The entrypoint script is made so that any options passed to the docker command will be passed along to the `postgres` server daemon. From the [docs](https://www.postgresql.org/docs/current/static/app-postgres.html) we see that any option available in a `.conf` file can be set via `-c`. + + ```console + $ docker run -d --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword postgres -c shared_buffers=256MB -c max_connections=200 + ``` + +## Locale Customization + +You can extend the Debian-based images with a simple `Dockerfile` to set a different locale. The following example will set the default locale to `de_DE.utf8`: + +```dockerfile +FROM postgres:9.4 +RUN localedef -i de_DE -c -f UTF-8 -A /usr/share/locale/locale.alias de_DE.UTF-8 +ENV LANG de_DE.utf8 +``` + +Since database initialization only happens on container startup, this allows us to set the language before it is created. + +Also of note, Alpine-based variants do *not* support locales; see ["Character sets and locale" in the musl documentation](https://wiki.musl-libc.org/functional-differences-from-glibc.html#Character-sets-and-locale) for more details. + +## Additional Extensions + +When using the default (Debian-based) variants, installing additional extensions (such as PostGIS) should be as simple as installing the relevant packages (see [github.com/postgis/docker-postgis](https://github.com/postgis/docker-postgis/blob/4eb614133d6aa87bfc5c952d24b7eb1f499e5c7c/12-3.0/Dockerfile) for a concrete example). + +When using the Alpine variants, any postgres extension not listed in [postgres-contrib](https://www.postgresql.org/docs/10/static/contrib.html) will need to be compiled in your own image (again, see [github.com/postgis/docker-postgis](https://github.com/postgis/docker-postgis/blob/4eb614133d6aa87bfc5c952d24b7eb1f499e5c7c/12-3.0/alpine/Dockerfile) for a concrete example). + +# Arbitrary `--user` Notes + +As of [docker-library/postgres#253](https://github.com/docker-library/postgres/pull/253), this image supports running as a (mostly) arbitrary user via `--user` on `docker run`. + +The main caveat to note is that `postgres` doesn't care what UID it runs as (as long as the owner of `/var/lib/postgresql/data` matches), but `initdb` *does* care (and needs the user to exist in `/etc/passwd`): + +```console +$ docker run -it --rm --user www-data -e POSTGRES_PASSWORD=mysecretpassword postgres +The files belonging to this database system will be owned by user "www-data". +... + +$ docker run -it --rm --user 1000:1000 -e POSTGRES_PASSWORD=mysecretpassword postgres +initdb: could not look up effective user ID 1000: user does not exist +``` + +The three easiest ways to get around this: + +1. use the Debian variants (not the Alpine variants) and thus allow the image to use [the `nss_wrapper` library](https://cwrap.org/nss_wrapper.html) to "fake" `/etc/passwd` contents for you (see [docker-library/postgres#448](https://github.com/docker-library/postgres/pull/448) for more details) + +2. bind-mount `/etc/passwd` read-only from the host (if the UID you desire is a valid user on your host): + + ```console + $ docker run -it --rm --user "$(id -u):$(id -g)" -v /etc/passwd:/etc/passwd:ro -e POSTGRES_PASSWORD=mysecretpassword postgres + The files belonging to this database system will be owned by user "jsmith". + ... + ``` + +3. initialize the target directory separately from the final runtime (with a `chown` in between): + + ```console + $ docker volume create pgdata + $ docker run -it --rm -v pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=mysecretpassword postgres + The files belonging to this database system will be owned by user "postgres". + ... + ( once it's finished initializing successfully and is waiting for connections, stop it ) + $ docker run -it --rm -v pgdata:/var/lib/postgresql/data bash chown -R 1000:1000 /var/lib/postgresql/data + $ docker run -it --rm --user 1000:1000 -v pgdata:/var/lib/postgresql/data postgres + LOG: database system was shut down at 2017-01-20 00:03:23 UTC + LOG: MultiXact member wraparound protections are now enabled + LOG: autovacuum launcher started + LOG: database system is ready to accept connections + ``` + +# Caveats + +If there is no database when `postgres` starts in a container, then `postgres` will create the default database for you. While this is the expected behavior of `postgres`, this means that it will not accept incoming connections during that time. This may cause issues when using automation tools, such as `docker-compose`, that start several containers simultaneously. + +Also note that the default `/dev/shm` size for containers is 64MB. If the shared memory is exhausted you will encounter `ERROR: could not resize shared memory segment . . . : No space left on device`. You will want to pass [`--shm-size=256MB`](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources) for example to `docker run`, or alternatively in [`docker-compose`](https://docs.docker.com/compose/compose-file/#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir) + +See ["IPVS connection timeout issue" in the Docker Success Center](https://success.docker.com/article/ipvs-connection-timeout-issue) for details about IPVS connection timeouts which will affect long-running idle connections to PostgreSQL in Swarm Mode using overlay networks. + +## Where to Store Data + +**Important note:** There are several ways to store data used by applications that run in Docker containers. We encourage users of the `postgres` images to familiarize themselves with the options available, including: + +- Let Docker manage the storage of your database data [by writing the database files to disk on the host system using its own internal volume management](https://docs.docker.com/engine/tutorials/dockervolumes/#adding-a-data-volume). This is the default and is easy and fairly transparent to the user. The downside is that the files may be hard to locate for tools and applications that run directly on the host system, i.e. outside containers. +- Create a data directory on the host system (outside the container) and [mount this to a directory visible from inside the container](https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume). This places the database files in a known location on the host system, and makes it easy for tools and applications on the host system to access the files. The downside is that the user needs to make sure that the directory exists, and that e.g. directory permissions and other security mechanisms on the host system are set up correctly. + +The Docker documentation is a good starting point for understanding the different storage options and variations, and there are multiple blogs and forum postings that discuss and give advice in this area. We will simply show the basic procedure here for the latter option above: + +1. Create a data directory on a suitable volume on your host system, e.g. `/my/own/datadir`. +2. Start your `postgres` container like this: + + ```console + $ docker run --name some-postgres -v /my/own/datadir:/var/lib/postgresql/data -e POSTGRES_PASSWORD=mysecretpassword -d postgres:tag + ``` + +The `-v /my/own/datadir:/var/lib/postgresql/data` part of the command mounts the `/my/own/datadir` directory from the underlying host system as `/var/lib/postgresql/data` inside the container, where PostgreSQL by default will write its data files. + +# Image Variants + +The `postgres` images come in many flavors, each designed for a specific use case. + +## `postgres:` + +This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of. + +## `postgres:-alpine` + +This image is based on the popular [Alpine Linux project](https://alpinelinux.org), available in [the `alpine` official image](https://hub.docker.com/_/alpine). Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general. + +This variant is highly recommended when final image size being as small as possible is desired. The main caveat to note is that it does use [musl libc](https://musl.libc.org) instead of [glibc and friends](https://www.etalabs.net/compare_libcs.html), so certain software might run into issues depending on the depth of their libc requirements. However, most software doesn't have an issue with this, so this variant is usually a very safe choice. See [this Hacker News comment thread](https://news.ycombinator.com/item?id=10782897) for more discussion of the issues that might arise and some pro/con comparisons of using Alpine-based images. + +To minimize image size, it's uncommon for additional related tools (such as `git` or `bash`) to be included in Alpine-based images. Using this image as a base, add the things you need in your own Dockerfile (see the [`alpine` image description](https://hub.docker.com/_/alpine/) for examples of how to install packages if you are unfamiliar). + +# License + +View [license information](https://www.postgresql.org/about/licence/) for the software contained in this image. + +As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained). + +Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `postgres/` directory](https://github.com/docker-library/repo-info/tree/master/repos/postgres). + +As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within. diff --git a/linux/ecosystem/postgres/latest/docker-compose.yml b/linux/ecosystem/postgres/latest/docker-compose.yml new file mode 100644 index 000000000..97899ea6d --- /dev/null +++ b/linux/ecosystem/postgres/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:latest" + build: + context: . diff --git a/linux/ecosystem/postgres/latest/docker-entrypoint.sh b/linux/ecosystem/postgres/latest/docker-entrypoint.sh new file mode 100755 index 000000000..eeeac649d --- /dev/null +++ b/linux/ecosystem/postgres/latest/docker-entrypoint.sh @@ -0,0 +1,327 @@ +#!/usr/bin/env bash +set -Eeo pipefail +# TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# check to see if this file is being run or sourced from another script +_is_sourced() { + # https://unix.stackexchange.com/a/215279 + [ "${#FUNCNAME[@]}" -ge 2 ] \ + && [ "${FUNCNAME[0]}" = '_is_sourced' ] \ + && [ "${FUNCNAME[1]}" = 'source' ] +} + +# used to create initial postgres directories and if run as root, ensure ownership to the "postgres" user +docker_create_db_directories() { + local user; user="$(id -u)" + + mkdir -p "$PGDATA" + # ignore failure since there are cases where we can't chmod (and PostgreSQL might fail later anyhow - it's picky about permissions of this directory) + chmod 700 "$PGDATA" || : + + # ignore failure since it will be fine when using the image provided directory; see also https://github.com/docker-library/postgres/pull/289 + mkdir -p /var/run/postgresql || : + chmod 775 /var/run/postgresql || : + + # Create the transaction log directory before initdb is run so the directory is owned by the correct user + if [ -n "$POSTGRES_INITDB_WALDIR" ]; then + mkdir -p "$POSTGRES_INITDB_WALDIR" + if [ "$user" = '0' ]; then + find "$POSTGRES_INITDB_WALDIR" \! -user postgres -exec chown postgres '{}' + + fi + chmod 700 "$POSTGRES_INITDB_WALDIR" + fi + + # allow the container to be started with `--user` + if [ "$user" = '0' ]; then + find "$PGDATA" \! -user postgres -exec chown postgres '{}' + + find /var/run/postgresql \! -user postgres -exec chown postgres '{}' + + fi +} + +# initialize empty PGDATA directory with new database via 'initdb' +# arguments to `initdb` can be passed via POSTGRES_INITDB_ARGS or as arguments to this function +# `initdb` automatically creates the "postgres", "template0", and "template1" dbnames +# this is also where the database user is created, specified by `POSTGRES_USER` env +docker_init_database_dir() { + # "initdb" is particular about the current user existing in "/etc/passwd", so we use "nss_wrapper" to fake that if necessary + # see https://github.com/docker-library/postgres/pull/253, https://github.com/docker-library/postgres/issues/359, https://cwrap.org/nss_wrapper.html + if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then + export LD_PRELOAD='/usr/lib/libnss_wrapper.so' + export NSS_WRAPPER_PASSWD="$(mktemp)" + export NSS_WRAPPER_GROUP="$(mktemp)" + echo "postgres:x:$(id -u):$(id -g):PostgreSQL:$PGDATA:/bin/false" > "$NSS_WRAPPER_PASSWD" + echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP" + fi + + if [ -n "$POSTGRES_INITDB_WALDIR" ]; then + set -- --waldir "$POSTGRES_INITDB_WALDIR" "$@" + fi + + eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS"' "$@"' + + # unset/cleanup "nss_wrapper" bits + if [ "${LD_PRELOAD:-}" = '/usr/lib/libnss_wrapper.so' ]; then + rm -f "$NSS_WRAPPER_PASSWD" "$NSS_WRAPPER_GROUP" + unset LD_PRELOAD NSS_WRAPPER_PASSWD NSS_WRAPPER_GROUP + fi +} + +# print large warning if POSTGRES_PASSWORD is long +# error if both POSTGRES_PASSWORD is empty and POSTGRES_HOST_AUTH_METHOD is not 'trust' +# print large warning if POSTGRES_HOST_AUTH_METHOD is set to 'trust' +# assumes database is not set up, ie: [ -z "$DATABASE_ALREADY_EXISTS" ] +docker_verify_minimum_env() { + # check password first so we can output the warning before postgres + # messes it up + if [ "${#POSTGRES_PASSWORD}" -ge 100 ]; then + cat >&2 <<-'EOWARN' + + WARNING: The supplied POSTGRES_PASSWORD is 100+ characters. + + This will not work if used via PGPASSWORD with "psql". + + https://www.postgresql.org/message-id/flat/E1Rqxp2-0004Qt-PL%40wrigleys.postgresql.org (BUG #6412) + https://github.com/docker-library/postgres/issues/507 + + EOWARN + fi + if [ -z "$POSTGRES_PASSWORD" ] && [ 'trust' != "$POSTGRES_HOST_AUTH_METHOD" ]; then + # The - option suppresses leading tabs but *not* spaces. :) + cat >&2 <<-'EOE' + Error: Database is uninitialized and superuser password is not specified. + You must specify POSTGRES_PASSWORD to a non-empty value for the + superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". + + You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all + connections without a password. This is *not* recommended. + + See PostgreSQL documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + EOE + exit 1 + fi + if [ 'trust' = "$POSTGRES_HOST_AUTH_METHOD" ]; then + cat >&2 <<-'EOWARN' + ******************************************************************************** + WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow + anyone with access to the Postgres port to access your database without + a password, even if POSTGRES_PASSWORD is set. See PostgreSQL + documentation about "trust": + https://www.postgresql.org/docs/current/auth-trust.html + In Docker's default configuration, this is effectively any other + container on the same system. + + It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace + it with "-e POSTGRES_PASSWORD=password" instead to set a password in + "docker run". + ******************************************************************************** + EOWARN + fi +} + +# usage: docker_process_init_files [file [file [...]]] +# ie: docker_process_init_files /always-initdb.d/* +# process initializer files, based on file extensions and permissions +docker_process_init_files() { + # psql here for backwards compatibility "${psql[@]}" + psql=( docker_process_sql ) + + echo + local f + for f; do + case "$f" in + *.sh) + # https://github.com/docker-library/postgres/issues/450#issuecomment-393167936 + # https://github.com/docker-library/postgres/pull/452 + if [ -x "$f" ]; then + echo "$0: running $f" + "$f" + else + echo "$0: sourcing $f" + . "$f" + fi + ;; + *.sql) echo "$0: running $f"; docker_process_sql -f "$f"; echo ;; + *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | docker_process_sql; echo ;; + *.sql.xz) echo "$0: running $f"; xzcat "$f" | docker_process_sql; echo ;; + *) echo "$0: ignoring $f" ;; + esac + echo + done +} + +# Execute sql script, passed via stdin (or -f flag of pqsl) +# usage: docker_process_sql [psql-cli-args] +# ie: docker_process_sql --dbname=mydb <<<'INSERT ...' +# ie: docker_process_sql -f my-file.sql +# ie: docker_process_sql > "$PGDATA/pg_hba.conf" +} + +# start socket-only postgresql server for setting up or running scripts +# all arguments will be passed along as arguments to `postgres` (via pg_ctl) +docker_temp_server_start() { + if [ "$1" = 'postgres' ]; then + shift + fi + + # internal start of server in order to allow setup using psql client + # does not listen on external TCP/IP and waits until start finishes + set -- "$@" -c listen_addresses='' -p "${PGPORT:-5432}" + + PGUSER="${PGUSER:-$POSTGRES_USER}" \ + pg_ctl -D "$PGDATA" \ + -o "$(printf '%q ' "$@")" \ + -w start +} + +# stop postgresql server after done setting up user and running scripts +docker_temp_server_stop() { + PGUSER="${PGUSER:-postgres}" \ + pg_ctl -D "$PGDATA" -m fast -w stop +} + +# check arguments for an option that would cause postgres to stop +# return true if there is one +_pg_want_help() { + local arg + for arg; do + case "$arg" in + # postgres --help | grep 'then exit' + # leaving out -C on purpose since it always fails and is unhelpful: + # postgres: could not access the server configuration file "/var/lib/postgresql/data/postgresql.conf": No such file or directory + -'?'|--help|--describe-config|-V|--version) + return 0 + ;; + esac + done + return 1 +} + +_main() { + # if first arg looks like a flag, assume we want to run postgres server + if [ "${1:0:1}" = '-' ]; then + set -- postgres "$@" + fi + + if [ "$1" = 'postgres' ] && ! _pg_want_help "$@"; then + docker_setup_env + # setup data directories and permissions (when run as root) + docker_create_db_directories + if [ "$(id -u)" = '0' ]; then + # then restart script as postgres user + exec gosu postgres "$BASH_SOURCE" "$@" + fi + + # only run initialization on an empty data directory + if [ -z "$DATABASE_ALREADY_EXISTS" ]; then + docker_verify_minimum_env + + # check dir permissions to reduce likelihood of half-initialized database + ls /docker-entrypoint-initdb.d/ > /dev/null + + docker_init_database_dir + pg_setup_hba_conf + + # PGPASSWORD is required for psql when authentication is required for 'local' connections via pg_hba.conf and is otherwise harmless + # e.g. when '--auth=md5' or '--auth-local=md5' is used in POSTGRES_INITDB_ARGS + export PGPASSWORD="${PGPASSWORD:-$POSTGRES_PASSWORD}" + docker_temp_server_start "$@" + + docker_setup_db + docker_process_init_files /docker-entrypoint-initdb.d/* + + docker_temp_server_stop + unset PGPASSWORD + + echo + echo 'PostgreSQL init process complete; ready for start up.' + echo + else + echo + echo 'PostgreSQL Database directory appears to contain a database; Skipping initialization' + echo + fi + fi + + exec "$@" +} + +if ! _is_sourced; then + _main "$@" +fi diff --git a/linux/qbittorrent/README.md b/linux/ecosystem/qbittorrent/README.md similarity index 100% rename from linux/qbittorrent/README.md rename to linux/ecosystem/qbittorrent/README.md diff --git a/linux/qbittorrent/latest/Dockerfile b/linux/ecosystem/qbittorrent/latest/Dockerfile similarity index 100% rename from linux/qbittorrent/latest/Dockerfile rename to linux/ecosystem/qbittorrent/latest/Dockerfile diff --git a/linux/ecosystem/qbittorrent/latest/Makefile b/linux/ecosystem/qbittorrent/latest/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/qbittorrent/latest/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/qbittorrent/latest/Makefile.unstable b/linux/ecosystem/qbittorrent/latest/Makefile.unstable similarity index 100% rename from linux/qbittorrent/latest/Makefile.unstable rename to linux/ecosystem/qbittorrent/latest/Makefile.unstable diff --git a/linux/qbittorrent/latest/docker-compose.yml b/linux/ecosystem/qbittorrent/latest/docker-compose.example.yml similarity index 100% rename from linux/qbittorrent/latest/docker-compose.yml rename to linux/ecosystem/qbittorrent/latest/docker-compose.example.yml diff --git a/linux/ecosystem/qbittorrent/latest/docker-compose.yml b/linux/ecosystem/qbittorrent/latest/docker-compose.yml new file mode 100644 index 000000000..0c0196593 --- /dev/null +++ b/linux/ecosystem/qbittorrent/latest/docker-compose.yml @@ -0,0 +1,10 @@ +version: '3.9' +services: + app: + image: "epicmorg/qbittorrent:latest" + build: + context: . + app-unstable: + image: "epicmorg/qbittorrent:unstable" + build: + context: . diff --git a/linux/qbittorrent/latest/entrypoint.sh b/linux/ecosystem/qbittorrent/latest/entrypoint.sh similarity index 100% rename from linux/qbittorrent/latest/entrypoint.sh rename to linux/ecosystem/qbittorrent/latest/entrypoint.sh diff --git a/linux/qbittorrent/latest/qbittorrent-unstable.list b/linux/ecosystem/qbittorrent/latest/qbittorrent-unstable.list similarity index 100% rename from linux/qbittorrent/latest/qbittorrent-unstable.list rename to linux/ecosystem/qbittorrent/latest/qbittorrent-unstable.list diff --git a/linux/qbittorrent/qbittorrent-icon.png b/linux/ecosystem/qbittorrent/qbittorrent-icon.png similarity index 100% rename from linux/qbittorrent/qbittorrent-icon.png rename to linux/ecosystem/qbittorrent/qbittorrent-icon.png diff --git a/linux/qbittorrent/stable/Dockerfile b/linux/ecosystem/qbittorrent/stable/Dockerfile similarity index 100% rename from linux/qbittorrent/stable/Dockerfile rename to linux/ecosystem/qbittorrent/stable/Dockerfile diff --git a/linux/ecosystem/qbittorrent/stable/Makefile b/linux/ecosystem/qbittorrent/stable/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/qbittorrent/stable/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/qbittorrent/stable/docker-compose.yml b/linux/ecosystem/qbittorrent/stable/docker-compose.yml new file mode 100644 index 000000000..7d9e5f914 --- /dev/null +++ b/linux/ecosystem/qbittorrent/stable/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/qbittorrent:stable" + build: + context: . diff --git a/linux/qbittorrent/stable/entrypoint.sh b/linux/ecosystem/qbittorrent/stable/entrypoint.sh similarity index 100% rename from linux/qbittorrent/stable/entrypoint.sh rename to linux/ecosystem/qbittorrent/stable/entrypoint.sh diff --git a/linux/qbittorrent/stable/qbittorrent-stable.list b/linux/ecosystem/qbittorrent/stable/qbittorrent-stable.list similarity index 100% rename from linux/qbittorrent/stable/qbittorrent-stable.list rename to linux/ecosystem/qbittorrent/stable/qbittorrent-stable.list diff --git a/linux/ecosystem/teamcity/README.md b/linux/ecosystem/teamcity/README.md new file mode 100644 index 000000000..5a0b34c0d --- /dev/null +++ b/linux/ecosystem/teamcity/README.md @@ -0,0 +1,42 @@ +## [](https://www.jetbrains.com/teamcity/) docker images + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +### Minimal agent (jetbrains/teamcity-minimal-agent) + +[![jetbrains/teamcity-minimal-agent](https://img.shields.io/docker/pulls/jetbrains/teamcity-minimal-agent.svg)](https://hub.docker.com/r/jetbrains/teamcity-minimal-agent/) + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. + +- [Repo](https://hub.docker.com/r/jetbrains/teamcity-minimal-agent) +- [Details](context/generated/teamcity-minimal-agent.md) +- [How to use](dockerhub/teamcity-minimal-agent/README.md) + +### Agent (jetbrains/teamcity-agent) + +[![jetbrains/teamcity-agent](https://img.shields.io/docker/pulls/jetbrains/teamcity-agent.svg)](https://hub.docker.com/r/jetbrains/teamcity-agent/) + +This image adds a TeamCity agent suitable for Java and .NET development. + +- [Repo](https://hub.docker.com/r/jetbrains/teamcity-agent) +- [Details](context/generated/teamcity-agent.md) +- [How to use](dockerhub/teamcity-agent/README.md) + +### Server (jetbrains/teamcity-server) + +[![jetbrains/teamcity-server](https://img.shields.io/docker/pulls/jetbrains/teamcity-server.svg)](https://hub.docker.com/r/jetbrains/teamcity-server/) + +- [Repo](https://hub.docker.com/r/jetbrains/teamcity-server) +- [Details](context/generated/teamcity-server.md) +- [How to use](dockerhub/teamcity-server/README.md) + +### Build images locally + +- Ensure [Docker](https://www.docker.com/get-started) installed. +- Clone this repository. +- Download the required TeamCity [_.tar.gz_ file](https://www.jetbrains.com/teamcity/download/#section=section-get). For instance ```wget -c https://download.jetbrains.com/teamcity/TeamCity-2020.1.tar.gz -O - | tar -xz -C context``` +- Unpack this file into the directory [context/TeamCity](context/TeamCity) within the cloned repository. +- Apply required changes in the directory [configs](configs). +- Generate docker and readme files by running the _generate.sh_ or _generate.cmd_ script. All generated artifacts will be placed into the directory [generated](generated). +- Run docker build commands like [on this page](generated/teamcity-agent.md) keeping the proposed order from the root directory of the cloned repository. The proposed order is important because some TeamCity images may be based on other TeamCity images. +- Check the docker images by running ```docker-compose up``` in the directories like [checks/windows-local](checks/windows-local) or [checks/linux-local](checks/linux-local). \ No newline at end of file diff --git a/linux/ecosystem/teamcity/agent/amxx-sdk/Dockerfile b/linux/ecosystem/teamcity/agent/amxx-sdk/Dockerfile new file mode 100644 index 000000000..037b06de6 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/amxx-sdk/Dockerfile @@ -0,0 +1,44 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# teamcity AMXXModX setup +################################################################## +# +# Reserved for future +# export AMXX_CSTRIKE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-cstrike-linux` && \ +# export AMXX_DOD_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-dod-linux` && \ +# export AMXX_ESF_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-esf-linux` && \ +# export AMXX_NS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-ns-linux` && \ +# export AMXX_TFC_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-tfc-linux` && \ +# export AMXX_TS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-base-linux` && \ +# +# Install packages +ENV AMXX_VERSION=1.9 +ENV AMXX_INSTALL_PATH=/opt/amxmodx/$AMXX_VERSION +ENV AMXX_BIN_PATH=$AMXX_INSTALL_PATH/scripting +ENV PATH=$PATH:$AMXX_BIN_PATH +ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$AMXX_BIN_PATH + +RUN export AMXX_BASE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-base-linux` && \ + mkdir -p $AMXX_INSTALL_PATH && \ + curl -SL https://www.amxmodx.org/amxxdrop/{$AMXX_VERSION}/{$AMXX_BASE_LATEST_VERSION} -o /tmp/amxx_base_latest.tar.gz && \ + cd /tmp && tar -zxf /tmp/amxx_base_latest.tar.gz && cd / && \ + mv -f /tmp/addons/amxmodx/* $AMXX_INSTALL_PATH && \ + chmod +x $AMXX_BIN_PATH/amxxpc && \ + chmod +x $AMXX_BIN_PATH/compile.sh + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/ecosystem/teamcity/agent/amxx-sdk/Makefile b/linux/ecosystem/teamcity/agent/amxx-sdk/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/amxx-sdk/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/teamcity/agent/README.md b/linux/ecosystem/teamcity/agent/amxx-sdk/README.md similarity index 100% rename from linux/teamcity/agent/README.md rename to linux/ecosystem/teamcity/agent/amxx-sdk/README.md diff --git a/linux/ecosystem/teamcity/agent/amxx-sdk/docker-compose.yml b/linux/ecosystem/teamcity/agent/amxx-sdk/docker-compose.yml new file mode 100644 index 000000000..56589b790 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/amxx-sdk/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:amxx-sdk" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/android-sdk/Dockerfile b/linux/ecosystem/teamcity/agent/android-sdk/Dockerfile new file mode 100644 index 000000000..f9c7f9e67 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/android-sdk/Dockerfile @@ -0,0 +1,49 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Android SDK +################################################################## +ENV ANDROID_HOME=/usr/lib/android-sdk +ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk + +RUN apt update && \ + apt install -y --allow-unauthenticated \ + android-sdk \ + android-sdk-build-tools \ + android-sdk-platform-tools-common \ + android-sdk-platform-tools \ + adb fastboot f2fs-tools e2fsprogs libsqlite3-0 sqlite3 + +# Activate android sdk +RUN echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > /usr/lib/android-sdk/licenses/android-sdk-license + +################################################################## +# SDKMAN +################################################################## +RUN curl -s "https://get.sdkman.io" | bash + +################################################################## +# Gradle +################################################################## +RUN /bin/bash -c "source /root/.sdkman/bin/sdkman-init.sh; sdk install gradle;" + +################################################################## +# Kotlin +################################################################## +RUN /bin/bash -c "source /root/.sdkman/bin/sdkman-init.sh; sdk install kotlin;" + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/ecosystem/teamcity/agent/android-sdk/Makefile b/linux/ecosystem/teamcity/agent/android-sdk/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/android-sdk/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/android-sdk/README.md b/linux/ecosystem/teamcity/agent/android-sdk/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/android-sdk/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/android-sdk/docker-compose.yml b/linux/ecosystem/teamcity/agent/android-sdk/docker-compose.yml new file mode 100644 index 000000000..dfb168a3a --- /dev/null +++ b/linux/ecosystem/teamcity/agent/android-sdk/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:android-sdk" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/atlassian-sdk/Dockerfile b/linux/ecosystem/teamcity/agent/atlassian-sdk/Dockerfile new file mode 100644 index 000000000..bb607345e --- /dev/null +++ b/linux/ecosystem/teamcity/agent/atlassian-sdk/Dockerfile @@ -0,0 +1,36 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# teamcity atlassian-sdk setup +################################################################## + +#Install packages +#RUN curl -SL https://packages.atlassian.com/atlassian-sdk-deb/debian/pool/contrib/a/atlassian-plugin-sdk/atlassian-plugin-sdk_8.0.16_all.deb -o /tmp/atlassian-plugin-sdk.deb && \ +# dpkg -i /tmp/atlassian-plugin-sdk.deb + +############################### +# https://community.atlassian.com/t5/Continuous-Delivery-questions/The-repository-https-packages-atlassian-com-atlassian-sdk-deb/qaq-p/1334014 +# +# https://community.developer.atlassian.com/t/the-repository-https-packages-atlassian-com-atlassian-sdk-deb-stable-release-is-not-signed/36901 +############################### +RUN curl -fsSL https://packages.atlassian.com/api/gpg/key/public | apt-key add - && \ + echo 'deb [trusted=yes] https://packages.atlassian.com/atlassian-sdk-deb stable contrib' > /etc/apt/sources.list.d/atlassian-sdk.list && \ + apt update --allow-insecure-repositories && \ + apt install -y --no-install-recommends --allow-unauthenticated \ + atlassian-plugin-sdk + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/ecosystem/teamcity/agent/atlassian-sdk/Makefile b/linux/ecosystem/teamcity/agent/atlassian-sdk/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/atlassian-sdk/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/atlassian-sdk/README.md b/linux/ecosystem/teamcity/agent/atlassian-sdk/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/atlassian-sdk/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/atlassian-sdk/docker-compose.yml b/linux/ecosystem/teamcity/agent/atlassian-sdk/docker-compose.yml new file mode 100644 index 000000000..4c05ddc93 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/atlassian-sdk/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:atlassian-sdk" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/dotnet-sdk/Dockerfile b/linux/ecosystem/teamcity/agent/dotnet-sdk/Dockerfile new file mode 100644 index 000000000..91d2e5fa8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/dotnet-sdk/Dockerfile @@ -0,0 +1,72 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# teamcity dotnet+powershell setup +################################################################## +# Opt out of the telemetry feature +ENV DOTNET_CLI_TELEMETRY_OPTOUT=true + +# Disable first time experience +ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true + +# Configure Kestrel web server to bind to port 80 when present +ENV ASPNETCORE_URLS=\ + +# Enable detection of running in a container +ENV DOTNET_RUNNING_IN_CONTAINER=true + +# Enable correct mode for dotnet watch (only mode supported in a container) +ENV DOTNET_USE_POLLING_FILE_WATCHER=true + +# Skip extraction of XML docs - generally not useful within an image/container - helps perfomance +ENV NUGET_XMLDOC_MODE=skip + +#unofficial support of openssl1.1 instead of 1.0 [https://stackoverflow.com/questions/51901359] +ENV CLR_OPENSSL_VERSION_OVERRIDE=45 + +# PowerShell telemetry for docker image usage +ENV POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Debian-10 + +#Install packages +RUN curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - && \ + echo 'deb [arch=amd64,arm64,armhf] https://packages.microsoft.com/debian/10/prod buster main' > /etc/apt/sources.list.d/microsoft.dotnet.list && \ + apt-get update && \ + apt-get install -y --no-install-recommends --allow-unauthenticated \ + libc6 \ +# libgcc1 \ + libgssapi-krb5-2 \ + libicu63 \ + liblttng-ust0 \ + libssl1.1 \ + libstdc++6 \ + zlib1g \ + dotnet-sdk-5.0 \ + dotnet-targeting-pack-5.0 \ + dotnet-runtime-deps-5.0 \ + dotnet-runtime-5.0 \ + dotnet-hostfxr-5.0 \ + dotnet-apphost-pack-5.0 \ + dotnet-host \ + powershell-preview \ + powershell + +# Trigger .NET CLI first run experience by running arbitrary cmd to populate local package cache +RUN dotnet help && \ + pwsh-preview -v && \ + pwsh -v + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/ecosystem/teamcity/agent/dotnet-sdk/Makefile b/linux/ecosystem/teamcity/agent/dotnet-sdk/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/dotnet-sdk/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/dotnet-sdk/README.md b/linux/ecosystem/teamcity/agent/dotnet-sdk/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/dotnet-sdk/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/dotnet-sdk/docker-compose.yml b/linux/ecosystem/teamcity/agent/dotnet-sdk/docker-compose.yml new file mode 100644 index 000000000..2009b3956 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/dotnet-sdk/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:dotnet-sdk" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/latest/Dockerfile b/linux/ecosystem/teamcity/agent/latest/Dockerfile new file mode 100644 index 000000000..91a721d13 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/Dockerfile @@ -0,0 +1,93 @@ +FROM epicmorg/devel:jdk11 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# sid sources list +################################################################## +RUN rm -rfv /etc/apt/sources.list +COPY sources.sid.list /etc/apt/sources.list +RUN apt update && \ + apt autoremove -y && \ + apt dist-upgrade -y && \ + apt autoremove -y + +################################################################## +# teamcity minimal agent +################################################################## +LABEL dockerImage.teamcity.version="latest" \ + dockerImage.teamcity.buildNumber="latest" + +VOLUME /data/teamcity_agent/conf + +ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties +ENV LANG=C.UTF-8 +ENV GIT_SSH_VARIANT=ssh + +COPY run-agent.sh /run-agent.sh +RUN chmod +x /run-agent.sh && \ + sync + +COPY run-services.sh /run-services.sh +RUN chmod +x /run-services.sh && \ + sync + +ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip +RUN unzip -q /buildAgent.zip -d /opt/buildagent && \ + mv /opt/buildagent/conf /opt/buildagent/conf_dist && \ + rm -rfv /buildAgent.zip + +RUN useradd -m buildagent && \ + chmod +x /opt/buildagent/bin/*.sh && \ + chmod +x /run-agent.sh /run-services.sh && sync + +################################################################## +# teamcity docker setup +################################################################## + +#Install packages +RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ + echo 'deb https://download.docker.com/linux/debian buster test' > /etc/apt/sources.list.d/docker.list && \ + apt-cache policy docker-ce && \ + apt-get update && \ + apt-get install -y --no-install-recommends --allow-unauthenticated \ + docker-ce \ + docker-ce-cli \ + containerd.io systemd && \ + systemctl disable docker && \ + usermod -aG docker buildagent + +# A better fix for TW-52939 Dockerfile build fails because of aufs +VOLUME /var/lib/docker + +COPY run-docker.sh /services/run-docker.sh +RUN chmod +x /services/run-docker.sh && \ + sync + +################################################################## +# teamcity docker compose setup +################################################################## + +#Install packages +RUN export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` && \ + echo "Latest compose is: ${DOCKER_COMPOSE_VERSION}" && \ + curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \ + chmod +x /usr/local/bin/docker-compose + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons + +CMD ["/run-services.sh"] + +EXPOSE 9090 diff --git a/linux/ecosystem/teamcity/agent/latest/Makefile b/linux/ecosystem/teamcity/agent/latest/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/latest/README.md b/linux/ecosystem/teamcity/agent/latest/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/latest/docker-compose.yml b/linux/ecosystem/teamcity/agent/latest/docker-compose.yml new file mode 100644 index 000000000..9190c2827 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:latest" + build: + context: . diff --git a/linux/teamcity/agent/run-agent.sh b/linux/ecosystem/teamcity/agent/latest/run-agent.sh similarity index 100% rename from linux/teamcity/agent/run-agent.sh rename to linux/ecosystem/teamcity/agent/latest/run-agent.sh diff --git a/linux/ecosystem/teamcity/agent/latest/run-docker.sh b/linux/ecosystem/teamcity/agent/latest/run-docker.sh new file mode 100755 index 000000000..41b5e68e5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/run-docker.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if [ "$DOCKER_IN_DOCKER" = "start" ] ; then + rm /var/run/docker.pid 2>/dev/null + service docker start + echo "Docker daemon started" +fi diff --git a/linux/teamcity/agent/run-services.sh b/linux/ecosystem/teamcity/agent/latest/run-services.sh similarity index 100% rename from linux/teamcity/agent/run-services.sh rename to linux/ecosystem/teamcity/agent/latest/run-services.sh diff --git a/linux/ecosystem/teamcity/agent/latest/sources.sid.list b/linux/ecosystem/teamcity/agent/latest/sources.sid.list new file mode 100644 index 000000000..e2ce3bf7a --- /dev/null +++ b/linux/ecosystem/teamcity/agent/latest/sources.sid.list @@ -0,0 +1,7 @@ +#main +deb http://httpredir.debian.org/debian/ sid main contrib non-free +deb-src http://httpredir.debian.org/debian/ sid main contrib non-free + +##multimedia +#deb http://httpredir.debian.org/debian-multimedia/ sid main non-free +#deb-src http://httpredir.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/teamcity/agent/node12/Dockerfile b/linux/ecosystem/teamcity/agent/node12/Dockerfile new file mode 100644 index 000000000..3826e4e1b --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node12/Dockerfile @@ -0,0 +1,35 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Node.js 12.x +################################################################## +RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - && \ + curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ + echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ + apt-get update && \ + apt-get install -y nodejs yarn + +# curl -L https://www.npmjs.com/install.sh | sh +# npm install -g npm + +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo "=============================================" + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/ecosystem/teamcity/agent/node12/Makefile b/linux/ecosystem/teamcity/agent/node12/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node12/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/node12/README.md b/linux/ecosystem/teamcity/agent/node12/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node12/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/node12/docker-compose.yml b/linux/ecosystem/teamcity/agent/node12/docker-compose.yml new file mode 100644 index 000000000..471281098 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node12/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:node12" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/node14/Dockerfile b/linux/ecosystem/teamcity/agent/node14/Dockerfile new file mode 100644 index 000000000..65fb1a3f7 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node14/Dockerfile @@ -0,0 +1,35 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Node.js 14.x +################################################################## +RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ + curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ + echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ + apt-get update && \ + apt-get install -y nodejs yarn + +# curl -L https://www.npmjs.com/install.sh | sh +# npm install -g npm + +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo "=============================================" + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/ecosystem/teamcity/agent/node14/Makefile b/linux/ecosystem/teamcity/agent/node14/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node14/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/node14/README.md b/linux/ecosystem/teamcity/agent/node14/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node14/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/node14/docker-compose.yml b/linux/ecosystem/teamcity/agent/node14/docker-compose.yml new file mode 100644 index 000000000..9dbd039a1 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node14/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:node14" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/node15/Dockerfile b/linux/ecosystem/teamcity/agent/node15/Dockerfile new file mode 100644 index 000000000..454dfb82f --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node15/Dockerfile @@ -0,0 +1,35 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Node.js 15.x +################################################################## +RUN curl -sL https://deb.nodesource.com/setup_15.x | bash - && \ + curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ + echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ + apt-get update && \ + apt-get install -y nodejs yarn + +# curl -L https://www.npmjs.com/install.sh | sh +# npm install -g npm + +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo "=============================================" + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/ecosystem/teamcity/agent/node15/Makefile b/linux/ecosystem/teamcity/agent/node15/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node15/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/node15/README.md b/linux/ecosystem/teamcity/agent/node15/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node15/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/node15/docker-compose.yml b/linux/ecosystem/teamcity/agent/node15/docker-compose.yml new file mode 100644 index 000000000..a1010e242 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node15/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:node15" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/node16/Dockerfile b/linux/ecosystem/teamcity/agent/node16/Dockerfile new file mode 100644 index 000000000..477a8a954 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node16/Dockerfile @@ -0,0 +1,35 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Node.js 16.x +################################################################## +RUN curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ + curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ + echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ + apt-get update && \ + apt-get install -y nodejs yarn + +# curl -L https://www.npmjs.com/install.sh | sh +# npm install -g npm + +RUN echo "=============================================" && \ + echo node $(node --version) && \ + echo npm $(npm --version) && \ + echo yarn $(yarn --version) && \ + echo "=============================================" + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons diff --git a/linux/ecosystem/teamcity/agent/node16/Makefile b/linux/ecosystem/teamcity/agent/node16/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node16/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/node16/README.md b/linux/ecosystem/teamcity/agent/node16/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node16/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/node16/docker-compose.yml b/linux/ecosystem/teamcity/agent/node16/docker-compose.yml new file mode 100644 index 000000000..a43bacda9 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/node16/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:node16" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/php7.2/Dockerfile b/linux/ecosystem/teamcity/agent/php7.2/Dockerfile new file mode 100644 index 000000000..d422b91eb --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.2/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/php:php7.2 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# installing java11 +################################################################## +RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ + echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \ + apt-get update && \ + apt-get autoremove -y && \ + apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \ + mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \ + ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \ + ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib + +################################################################## +# teamcity minimal agent +################################################################## +LABEL dockerImage.teamcity.version="latest" \ + dockerImage.teamcity.buildNumber="latest" + +VOLUME /data/teamcity_agent/conf + +ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties +ENV LANG=C.UTF-8 +ENV GIT_SSH_VARIANT=ssh + +COPY run-agent.sh /run-agent.sh +RUN chmod +x /run-agent.sh && \ + sync + +COPY run-services.sh /run-services.sh +RUN chmod +x /run-services.sh && \ + sync + +ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip +RUN unzip -q /buildAgent.zip -d /opt/buildagent && \ + mv /opt/buildagent/conf /opt/buildagent/conf_dist && \ + rm -rfv /buildAgent.zip + +RUN useradd -m buildagent && \ + chmod +x /opt/buildagent/bin/*.sh && \ + chmod +x /run-agent.sh /run-services.sh && sync + +################################################################## +# php +################################################################## +RUN php -m && \ + php -v + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons + +CMD ["/run-services.sh"] + +EXPOSE 9090 diff --git a/linux/ecosystem/teamcity/agent/php7.2/Makefile b/linux/ecosystem/teamcity/agent/php7.2/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.2/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/php7.2/README.md b/linux/ecosystem/teamcity/agent/php7.2/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.2/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/php7.2/docker-compose.yml b/linux/ecosystem/teamcity/agent/php7.2/docker-compose.yml new file mode 100644 index 000000000..4e8b33651 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.2/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:php7.2" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/php7.2/run-agent.sh b/linux/ecosystem/teamcity/agent/php7.2/run-agent.sh new file mode 100755 index 000000000..a9ded1d14 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.2/run-agent.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +check() { + if [[ $? != 0 ]]; then + echo "Error! Stopping the script." + exit 1 + fi +} + +configure() { + if [[ $# -gt 0 ]]; then + echo "run agent.sh configure $@" + ${AGENT_DIST}/bin/agent.sh configure "$@"; check + fi +} + +reconfigure() { + declare -a opts + [[ -n "${SERVER_URL}" ]] && opts[${#opts[@]}]='--server-url' && opts[${#opts[@]}]="$SERVER_URL" + [[ -n "${AGENT_TOKEN}" ]] && opts[${#opts[@]}]='--auth-token' && opts[${#opts[@]}]="$AGENT_TOKEN" + [[ -n "${AGENT_NAME}" ]] && opts[${#opts[@]}]='--name' && opts[${#opts[@]}]="$AGENT_NAME" + [[ -n "${OWN_ADDRESS}" ]] && opts[${#opts[@]}]='--ownAddress' && opts[${#opts[@]}]="$OWN_ADDRESS" + [[ -n "${OWN_PORT}" ]] && opts[${#opts[@]}]='--ownPort' && opts[${#opts[@]}]="$OWN_PORT" + if [[ 0 -ne "${#opts[@]}" ]]; then + # Using sed to strip double quotes produced by docker-compose + for i in $(seq 0 $(expr ${#opts[@]} - 1)); do + opts[$i]="$(echo "${opts[$i]}" | sed -e 's/""/"/g')" + done + configure "${opts[@]}" + echo "File buildAgent.properties was updated" + fi + for AGENT_OPT in ${AGENT_OPTS}; do + echo ${AGENT_OPT} >> ${CONFIG_DIR}/buildAgent.properties + done +} + +prepare_conf() { + echo "Will prepare agent config" ; + cp -p ${AGENT_DIST}/conf_dist/*.* ${CONFIG_DIR}/; check + cp -p ${CONFIG_DIR}/buildAgent.dist.properties ${CONFIG_DIR}/buildAgent.properties; check + reconfigure + echo "File buildAgent.properties was created and updated" ; +} + +AGENT_DIST=/opt/buildagent + +CONFIG_DIR=/data/teamcity_agent/conf + +LOG_DIR=/opt/buildagent/logs + + +rm -f ${LOG_DIR}/*.pid + +if [ -f ${CONFIG_DIR}/buildAgent.properties ] ; then + echo "File buildAgent.properties was found in ${CONFIG_DIR}" ; + reconfigure +else + echo "Will create new buildAgent.properties using distributive" ; + if [[ -n "${SERVER_URL}" ]]; then + echo "TeamCity URL is provided: ${SERVER_URL}" + else + echo "TeamCity URL is not provided, but is required." + exit 1 + fi + prepare_conf +fi + +if [ -z "$RUN_AS_BUILDAGENT" -o "$RUN_AS_BUILDAGENT" = "false" -o "$RUN_AS_BUILDAGENT" = "no" ]; then + ${AGENT_DIST}/bin/agent.sh start +else + echo "Make sure build agent directory ${AGENT_DIST} is owned by buildagent user" + chown -R buildagent:buildagent ${AGENT_DIST} + check; sync + + echo "Start build agent under buildagent user" + sudo -E -u buildagent HOME=/home/buildagent ${AGENT_DIST}/bin/agent.sh start +fi + + + +while [ ! -f ${LOG_DIR}/teamcity-agent.log ]; +do + echo -n "." + sleep 1 +done + +trap '${AGENT_DIST}/bin/agent.sh stop force; while ps -p $(cat $(ls -1 ${LOG_DIR}/*.pid)) &>/dev/null; do sleep 1; done; kill %%' SIGINT SIGTERM SIGHUP + +tail -qF ${LOG_DIR}/teamcity-agent.log & +wait diff --git a/linux/ecosystem/teamcity/agent/php7.2/run-services.sh b/linux/ecosystem/teamcity/agent/php7.2/run-services.sh new file mode 100755 index 000000000..a574dd68a --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.2/run-services.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +echo '/run-services.sh' + +for entry in /services/*.sh +do + if [[ -f "$entry" ]]; then + echo "$entry" + [[ ! -x "$entry" ]] && (chmod +x "$entry"; sync) + "$entry" + fi +done + +echo '/run-agent.sh' +exec '/run-agent.sh' diff --git a/linux/epicmorg/edge/main/sources.sid.list b/linux/ecosystem/teamcity/agent/php7.2/sources.sid.list similarity index 100% rename from linux/epicmorg/edge/main/sources.sid.list rename to linux/ecosystem/teamcity/agent/php7.2/sources.sid.list diff --git a/linux/ecosystem/teamcity/agent/php7.3/Dockerfile b/linux/ecosystem/teamcity/agent/php7.3/Dockerfile new file mode 100644 index 000000000..849305b65 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.3/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/php:php7.3 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# installing java11 +################################################################## +RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ + echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \ + apt-get update && \ + apt-get autoremove -y && \ + apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \ + mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \ + ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \ + ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib + +################################################################## +# teamcity minimal agent +################################################################## +LABEL dockerImage.teamcity.version="latest" \ + dockerImage.teamcity.buildNumber="latest" + +VOLUME /data/teamcity_agent/conf + +ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties +ENV LANG=C.UTF-8 +ENV GIT_SSH_VARIANT=ssh + +COPY run-agent.sh /run-agent.sh +RUN chmod +x /run-agent.sh && \ + sync + +COPY run-services.sh /run-services.sh +RUN chmod +x /run-services.sh && \ + sync + +ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip +RUN unzip -q /buildAgent.zip -d /opt/buildagent && \ + mv /opt/buildagent/conf /opt/buildagent/conf_dist && \ + rm -rfv /buildAgent.zip + +RUN useradd -m buildagent && \ + chmod +x /opt/buildagent/bin/*.sh && \ + chmod +x /run-agent.sh /run-services.sh && sync + +################################################################## +# php +################################################################## +RUN php -m && \ + php -v + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons + +CMD ["/run-services.sh"] + +EXPOSE 9090 diff --git a/linux/ecosystem/teamcity/agent/php7.3/Makefile b/linux/ecosystem/teamcity/agent/php7.3/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.3/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/php7.3/README.md b/linux/ecosystem/teamcity/agent/php7.3/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.3/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/php7.3/docker-compose.yml b/linux/ecosystem/teamcity/agent/php7.3/docker-compose.yml new file mode 100644 index 000000000..09fb563d3 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.3/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:php7.3" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/php7.3/run-agent.sh b/linux/ecosystem/teamcity/agent/php7.3/run-agent.sh new file mode 100755 index 000000000..a9ded1d14 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.3/run-agent.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +check() { + if [[ $? != 0 ]]; then + echo "Error! Stopping the script." + exit 1 + fi +} + +configure() { + if [[ $# -gt 0 ]]; then + echo "run agent.sh configure $@" + ${AGENT_DIST}/bin/agent.sh configure "$@"; check + fi +} + +reconfigure() { + declare -a opts + [[ -n "${SERVER_URL}" ]] && opts[${#opts[@]}]='--server-url' && opts[${#opts[@]}]="$SERVER_URL" + [[ -n "${AGENT_TOKEN}" ]] && opts[${#opts[@]}]='--auth-token' && opts[${#opts[@]}]="$AGENT_TOKEN" + [[ -n "${AGENT_NAME}" ]] && opts[${#opts[@]}]='--name' && opts[${#opts[@]}]="$AGENT_NAME" + [[ -n "${OWN_ADDRESS}" ]] && opts[${#opts[@]}]='--ownAddress' && opts[${#opts[@]}]="$OWN_ADDRESS" + [[ -n "${OWN_PORT}" ]] && opts[${#opts[@]}]='--ownPort' && opts[${#opts[@]}]="$OWN_PORT" + if [[ 0 -ne "${#opts[@]}" ]]; then + # Using sed to strip double quotes produced by docker-compose + for i in $(seq 0 $(expr ${#opts[@]} - 1)); do + opts[$i]="$(echo "${opts[$i]}" | sed -e 's/""/"/g')" + done + configure "${opts[@]}" + echo "File buildAgent.properties was updated" + fi + for AGENT_OPT in ${AGENT_OPTS}; do + echo ${AGENT_OPT} >> ${CONFIG_DIR}/buildAgent.properties + done +} + +prepare_conf() { + echo "Will prepare agent config" ; + cp -p ${AGENT_DIST}/conf_dist/*.* ${CONFIG_DIR}/; check + cp -p ${CONFIG_DIR}/buildAgent.dist.properties ${CONFIG_DIR}/buildAgent.properties; check + reconfigure + echo "File buildAgent.properties was created and updated" ; +} + +AGENT_DIST=/opt/buildagent + +CONFIG_DIR=/data/teamcity_agent/conf + +LOG_DIR=/opt/buildagent/logs + + +rm -f ${LOG_DIR}/*.pid + +if [ -f ${CONFIG_DIR}/buildAgent.properties ] ; then + echo "File buildAgent.properties was found in ${CONFIG_DIR}" ; + reconfigure +else + echo "Will create new buildAgent.properties using distributive" ; + if [[ -n "${SERVER_URL}" ]]; then + echo "TeamCity URL is provided: ${SERVER_URL}" + else + echo "TeamCity URL is not provided, but is required." + exit 1 + fi + prepare_conf +fi + +if [ -z "$RUN_AS_BUILDAGENT" -o "$RUN_AS_BUILDAGENT" = "false" -o "$RUN_AS_BUILDAGENT" = "no" ]; then + ${AGENT_DIST}/bin/agent.sh start +else + echo "Make sure build agent directory ${AGENT_DIST} is owned by buildagent user" + chown -R buildagent:buildagent ${AGENT_DIST} + check; sync + + echo "Start build agent under buildagent user" + sudo -E -u buildagent HOME=/home/buildagent ${AGENT_DIST}/bin/agent.sh start +fi + + + +while [ ! -f ${LOG_DIR}/teamcity-agent.log ]; +do + echo -n "." + sleep 1 +done + +trap '${AGENT_DIST}/bin/agent.sh stop force; while ps -p $(cat $(ls -1 ${LOG_DIR}/*.pid)) &>/dev/null; do sleep 1; done; kill %%' SIGINT SIGTERM SIGHUP + +tail -qF ${LOG_DIR}/teamcity-agent.log & +wait diff --git a/linux/ecosystem/teamcity/agent/php7.3/run-services.sh b/linux/ecosystem/teamcity/agent/php7.3/run-services.sh new file mode 100755 index 000000000..a574dd68a --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.3/run-services.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +echo '/run-services.sh' + +for entry in /services/*.sh +do + if [[ -f "$entry" ]]; then + echo "$entry" + [[ ! -x "$entry" ]] && (chmod +x "$entry"; sync) + "$entry" + fi +done + +echo '/run-agent.sh' +exec '/run-agent.sh' diff --git a/linux/ecosystem/teamcity/agent/php7.3/sources.sid.list b/linux/ecosystem/teamcity/agent/php7.3/sources.sid.list new file mode 100644 index 000000000..d3d573cdc --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.3/sources.sid.list @@ -0,0 +1,7 @@ +#main +deb http://ftp.ru.debian.org/debian/ sid main contrib non-free +deb-src http://ftp.ru.debian.org/debian/ sid main contrib non-free + +##multimedia +#deb http://ftp.ru.debian.org/debian-multimedia/ sid main non-free +#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/teamcity/agent/php7.4/Dockerfile b/linux/ecosystem/teamcity/agent/php7.4/Dockerfile new file mode 100644 index 000000000..c14d44bc6 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.4/Dockerfile @@ -0,0 +1,69 @@ +FROM epicmorg/php:php7.4 +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# installing java11 +################################################################## +RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ + echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \ + apt-get update && \ + apt-get autoremove -y && \ + apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \ + mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \ + ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \ + ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib + +################################################################## +# teamcity minimal agent +################################################################## +LABEL dockerImage.teamcity.version="latest" \ + dockerImage.teamcity.buildNumber="latest" + +VOLUME /data/teamcity_agent/conf + +ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties +ENV LANG=C.UTF-8 +ENV GIT_SSH_VARIANT=ssh + +COPY run-agent.sh /run-agent.sh +RUN chmod +x /run-agent.sh && \ + sync + +COPY run-services.sh /run-services.sh +RUN chmod +x /run-services.sh && \ + sync + +ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip +RUN unzip -q /buildAgent.zip -d /opt/buildagent && \ + mv /opt/buildagent/conf /opt/buildagent/conf_dist && \ + rm -rfv /buildAgent.zip + +RUN useradd -m buildagent && \ + chmod +x /opt/buildagent/bin/*.sh && \ + chmod +x /run-agent.sh /run-services.sh && sync + +################################################################## +# php +################################################################## +RUN php -m && \ + php -v + + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons + +CMD ["/run-services.sh"] + +EXPOSE 9090 diff --git a/linux/ecosystem/teamcity/agent/php7.4/Makefile b/linux/ecosystem/teamcity/agent/php7.4/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.4/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/php7.4/README.md b/linux/ecosystem/teamcity/agent/php7.4/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.4/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/php7.4/docker-compose.yml b/linux/ecosystem/teamcity/agent/php7.4/docker-compose.yml new file mode 100644 index 000000000..0a62dec5d --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.4/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:php7.4" + build: + context: . diff --git a/linux/ecosystem/teamcity/agent/php7.4/run-agent.sh b/linux/ecosystem/teamcity/agent/php7.4/run-agent.sh new file mode 100755 index 000000000..a9ded1d14 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.4/run-agent.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +check() { + if [[ $? != 0 ]]; then + echo "Error! Stopping the script." + exit 1 + fi +} + +configure() { + if [[ $# -gt 0 ]]; then + echo "run agent.sh configure $@" + ${AGENT_DIST}/bin/agent.sh configure "$@"; check + fi +} + +reconfigure() { + declare -a opts + [[ -n "${SERVER_URL}" ]] && opts[${#opts[@]}]='--server-url' && opts[${#opts[@]}]="$SERVER_URL" + [[ -n "${AGENT_TOKEN}" ]] && opts[${#opts[@]}]='--auth-token' && opts[${#opts[@]}]="$AGENT_TOKEN" + [[ -n "${AGENT_NAME}" ]] && opts[${#opts[@]}]='--name' && opts[${#opts[@]}]="$AGENT_NAME" + [[ -n "${OWN_ADDRESS}" ]] && opts[${#opts[@]}]='--ownAddress' && opts[${#opts[@]}]="$OWN_ADDRESS" + [[ -n "${OWN_PORT}" ]] && opts[${#opts[@]}]='--ownPort' && opts[${#opts[@]}]="$OWN_PORT" + if [[ 0 -ne "${#opts[@]}" ]]; then + # Using sed to strip double quotes produced by docker-compose + for i in $(seq 0 $(expr ${#opts[@]} - 1)); do + opts[$i]="$(echo "${opts[$i]}" | sed -e 's/""/"/g')" + done + configure "${opts[@]}" + echo "File buildAgent.properties was updated" + fi + for AGENT_OPT in ${AGENT_OPTS}; do + echo ${AGENT_OPT} >> ${CONFIG_DIR}/buildAgent.properties + done +} + +prepare_conf() { + echo "Will prepare agent config" ; + cp -p ${AGENT_DIST}/conf_dist/*.* ${CONFIG_DIR}/; check + cp -p ${CONFIG_DIR}/buildAgent.dist.properties ${CONFIG_DIR}/buildAgent.properties; check + reconfigure + echo "File buildAgent.properties was created and updated" ; +} + +AGENT_DIST=/opt/buildagent + +CONFIG_DIR=/data/teamcity_agent/conf + +LOG_DIR=/opt/buildagent/logs + + +rm -f ${LOG_DIR}/*.pid + +if [ -f ${CONFIG_DIR}/buildAgent.properties ] ; then + echo "File buildAgent.properties was found in ${CONFIG_DIR}" ; + reconfigure +else + echo "Will create new buildAgent.properties using distributive" ; + if [[ -n "${SERVER_URL}" ]]; then + echo "TeamCity URL is provided: ${SERVER_URL}" + else + echo "TeamCity URL is not provided, but is required." + exit 1 + fi + prepare_conf +fi + +if [ -z "$RUN_AS_BUILDAGENT" -o "$RUN_AS_BUILDAGENT" = "false" -o "$RUN_AS_BUILDAGENT" = "no" ]; then + ${AGENT_DIST}/bin/agent.sh start +else + echo "Make sure build agent directory ${AGENT_DIST} is owned by buildagent user" + chown -R buildagent:buildagent ${AGENT_DIST} + check; sync + + echo "Start build agent under buildagent user" + sudo -E -u buildagent HOME=/home/buildagent ${AGENT_DIST}/bin/agent.sh start +fi + + + +while [ ! -f ${LOG_DIR}/teamcity-agent.log ]; +do + echo -n "." + sleep 1 +done + +trap '${AGENT_DIST}/bin/agent.sh stop force; while ps -p $(cat $(ls -1 ${LOG_DIR}/*.pid)) &>/dev/null; do sleep 1; done; kill %%' SIGINT SIGTERM SIGHUP + +tail -qF ${LOG_DIR}/teamcity-agent.log & +wait diff --git a/linux/ecosystem/teamcity/agent/php7.4/run-services.sh b/linux/ecosystem/teamcity/agent/php7.4/run-services.sh new file mode 100755 index 000000000..a574dd68a --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.4/run-services.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +echo '/run-services.sh' + +for entry in /services/*.sh +do + if [[ -f "$entry" ]]; then + echo "$entry" + [[ ! -x "$entry" ]] && (chmod +x "$entry"; sync) + "$entry" + fi +done + +echo '/run-agent.sh' +exec '/run-agent.sh' diff --git a/linux/ecosystem/teamcity/agent/php7.4/sources.sid.list b/linux/ecosystem/teamcity/agent/php7.4/sources.sid.list new file mode 100644 index 000000000..d3d573cdc --- /dev/null +++ b/linux/ecosystem/teamcity/agent/php7.4/sources.sid.list @@ -0,0 +1,7 @@ +#main +deb http://ftp.ru.debian.org/debian/ sid main contrib non-free +deb-src http://ftp.ru.debian.org/debian/ sid main contrib non-free + +##multimedia +#deb http://ftp.ru.debian.org/debian-multimedia/ sid main non-free +#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/ecosystem/teamcity/agent/steam-sdk/Dockerfile b/linux/ecosystem/teamcity/agent/steam-sdk/Dockerfile new file mode 100644 index 000000000..3dba5e452 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/steam-sdk/Dockerfile @@ -0,0 +1,31 @@ +FROM epicmorg/teamcity-agent:latest +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# steam runtime and ssdk +################################################################## +RUN cd / && \ + sudo mkdir valve && \ + cd valve && \ + sudo wget http://media.steampowered.com/client/runtime/steam-runtime-sdk_latest.tar.xz && \ + sudo tar xvf steam-runtime-sdk_latest.tar.xz && \ + sudo mv steam-runtime-sdk_2013-09-05 steam-runtime && \ + sudo chown root:root * -R && \ + cd steam-runtime && \ + printf '%s\n' 3 1 Y Y Y | ./setup.sh + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/deb/* && \ + rm -rfv /tmp/composer-setup.php && \ + rm -rfv /tmp/amxx_base_latest.tar.gz && \ + rm -rfv /tmp/atlassian-plugin-sdk.deb && \ + rm -rfv /tmp/addons + diff --git a/linux/ecosystem/teamcity/agent/steam-sdk/Makefile b/linux/ecosystem/teamcity/agent/steam-sdk/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/steam-sdk/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/teamcity/agent/steam-sdk/README.md b/linux/ecosystem/teamcity/agent/steam-sdk/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/ecosystem/teamcity/agent/steam-sdk/README.md @@ -0,0 +1,93 @@ +## TeamCity Minimal Build Agent + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) + +This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image. + + More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md). + +The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes. +You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server. + +This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/). + +## How to Use This Image + +Pull the TeamCity minimal image from the Docker Hub Repository: + +``` +jetbrains/teamcity-minimal-agent +``` +  +and use the following command to start a container with TeamCity agent running inside +a Linux container: + +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + jetbrains/teamcity-minimal-agent +``` +  +or a Windows container: +``` +docker run -it -e SERVER_URL="" + -v :C:/BuildAgent/conf + jetbrains/teamcity-minimal-agent +``` +where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container. +`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create. + +Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases. + +When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html). + +All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved. + +TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server. + +### Agent Image Environment Variables + +- **SERVER_URL** - URL of the TeamCity server agent will connect to +- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted +- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI. +- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected +- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default + +### Windows Containers Limitations + +The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers). + +## Customization + +You can customize the image via the usual Docker procedure: + +1. Run the image +``` +docker run -it -e SERVER_URL="" \ + -v :/data/teamcity_agent/conf \ + --name="my-customized-agent" \ + jetbrains/teamcity-minimal-agent \ +``` +2. Enter the container +``` +docker exec -it my-customized-agent bash +``` + +3. Change whatever you need +4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container +``` +docker commit my-customized-agent +``` + +## License + +The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html). +TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html). + +## Feedback + +Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW). + +## Other TeamCity Images +* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/) +* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/) diff --git a/linux/ecosystem/teamcity/agent/steam-sdk/docker-compose.yml b/linux/ecosystem/teamcity/agent/steam-sdk/docker-compose.yml new file mode 100644 index 000000000..f0880a11a --- /dev/null +++ b/linux/ecosystem/teamcity/agent/steam-sdk/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:steam-sdk" + build: + context: . diff --git a/linux/testrail/latest/Dockerfile b/linux/ecosystem/testrail/Dockerfile similarity index 100% rename from linux/testrail/latest/Dockerfile rename to linux/ecosystem/testrail/Dockerfile diff --git a/linux/ecosystem/testrail/Makefile b/linux/ecosystem/testrail/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/testrail/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/testrail/latest/README.md b/linux/ecosystem/testrail/README.md similarity index 100% rename from linux/testrail/latest/README.md rename to linux/ecosystem/testrail/README.md diff --git a/linux/testrail/latest/apache_testrail.conf b/linux/ecosystem/testrail/apache_testrail.conf similarity index 100% rename from linux/testrail/latest/apache_testrail.conf rename to linux/ecosystem/testrail/apache_testrail.conf diff --git a/linux/ecosystem/testrail/docker-compose.yml b/linux/ecosystem/testrail/docker-compose.yml new file mode 100644 index 000000000..288250f78 --- /dev/null +++ b/linux/ecosystem/testrail/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:latest" + build: + context: . diff --git a/linux/testrail/latest/run.sh b/linux/ecosystem/testrail/run.sh similarity index 100% rename from linux/testrail/latest/run.sh rename to linux/ecosystem/testrail/run.sh diff --git a/linux/ecosystem/torrserver/Dockerfile b/linux/ecosystem/torrserver/Dockerfile new file mode 100644 index 000000000..eeb9b9538 --- /dev/null +++ b/linux/ecosystem/torrserver/Dockerfile @@ -0,0 +1,27 @@ +FROM epicmorg/edge + +#ARG TORRSERVER_LINK=https://releases.yourok.ru/torr/server/TorrServer-linux-amd64 +ARG TORRSERVER_LINK=https://github.com/YouROK/TorrServer/releases/latest/download/TorrServer-linux-amd64 + +WORKDIR /opt + +ADD $TORRSERVER_LINK torrServer + +RUN \ + apt-get update && \ + apt-get upgrade -y && \ + export GODEBUG=madvdontneed=1 && \ + chmod +x torrServer + +ENV UI_PORT 8090 +ENV UPNP_PORT 32000 + +EXPOSE \ + $UI_PORT \ + $UPNP_PORT \ + $UPNP_PORT/udp + +VOLUME \ + /config + +ENTRYPOINT /opt/torrServer --port $UI_PORT -path /config \ No newline at end of file diff --git a/linux/ecosystem/torrserver/Makefile b/linux/ecosystem/torrserver/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/torrserver/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/torrserver/docker-compose.yml b/linux/ecosystem/torrserver/docker-compose.yml new file mode 100644 index 000000000..304ebd6a9 --- /dev/null +++ b/linux/ecosystem/torrserver/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/torrserver:latest" + build: + context: . diff --git a/linux/ecosystem/vk2discord/Dockerfile b/linux/ecosystem/vk2discord/Dockerfile new file mode 100644 index 000000000..a060eccea --- /dev/null +++ b/linux/ecosystem/vk2discord/Dockerfile @@ -0,0 +1,44 @@ +FROM epicmorg/devel AS builder +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +WORKDIR /tmp + +RUN git clone https://github.com/MrZillaGold/VK2Discord.git vk2discord + +FROM epicmorg/edge +LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# Node.js 16.x +################################################################## +RUN curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ + curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ + echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ + apt-get update && \ + apt-get install -y nodejs yarn + +################################################################## +# Installing vk2discord +################################################################## + +WORKDIR /usr/src/vk2discord + + +COPY --from=builder /tmp/vk2discord/package*.json /usr/src/vk2discord/ + +RUN npm install -g + +COPY --from=builder /tmp/vk2discord/* /usr/src/vk2discord/ + +################################################################## +# cleaninig up +################################################################## +RUN apt clean -y && \ + apt-get clean all && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD npm start diff --git a/linux/ecosystem/vk2discord/Makefile b/linux/ecosystem/vk2discord/Makefile new file mode 100644 index 000000000..bad6d73b5 --- /dev/null +++ b/linux/ecosystem/vk2discord/Makefile @@ -0,0 +1,19 @@ +all: app + +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/vk2discord/latest/README.md b/linux/ecosystem/vk2discord/README.md similarity index 100% rename from linux/vk2discord/latest/README.md rename to linux/ecosystem/vk2discord/README.md diff --git a/linux/ecosystem/vk2discord/docker-compose.yml b/linux/ecosystem/vk2discord/docker-compose.yml new file mode 100644 index 000000000..a1323a462 --- /dev/null +++ b/linux/ecosystem/vk2discord/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/vk2discord:latest" + build: + context: . diff --git a/linux/epicmorg/devel/jdk11/Makefile b/linux/epicmorg/devel/jdk11/Makefile deleted file mode 100644 index 62e0280e0..000000000 --- a/linux/epicmorg/devel/jdk11/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgdev -emgdev: - docker build --compress -t epicmorg/devel:jdk11 . - docker push epicmorg/devel:jdk11 - diff --git a/linux/epicmorg/devel/jdk6/Makefile b/linux/epicmorg/devel/jdk6/Makefile deleted file mode 100644 index 6c683ad45..000000000 --- a/linux/epicmorg/devel/jdk6/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/devel:jdk6 . - docker push epicmorg/devel:jdk6 - diff --git a/linux/epicmorg/devel/jdk7/Makefile b/linux/epicmorg/devel/jdk7/Makefile deleted file mode 100644 index 227771561..000000000 --- a/linux/epicmorg/devel/jdk7/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/devel:jdk7 . - docker push epicmorg/devel:jdk7 - diff --git a/linux/epicmorg/devel/jdk8/Makefile b/linux/epicmorg/devel/jdk8/Makefile deleted file mode 100644 index 17f27ca0e..000000000 --- a/linux/epicmorg/devel/jdk8/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgdev -emgdev: - docker build --compress -t epicmorg/devel:jdk8 . - docker push epicmorg/devel:jdk8 - diff --git a/linux/epicmorg/devel/main/Dockerfile b/linux/epicmorg/devel/main/Dockerfile deleted file mode 100644 index 386a6601f..000000000 --- a/linux/epicmorg/devel/main/Dockerfile +++ /dev/null @@ -1,100 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ENV BuildDocker true -ARG BUILDS_DIR=/builds -ARG SRC_DIR=${BUILDS_DIR}/src -ARG EXPORT_DIR=${BUILDS_DIR}/export - -################################################################## -# Files and folders -################################################################## -RUN mkdir -p ${SRC_DIR} ${EXPORT_DIR} ${PRE_DIR} - -################################################################## -# sid sources list -################################################################## -RUN apt update && \ - apt-get autoremove -y && \ - apt dist-upgrade -y - -################################################################## -# deps -################################################################## -RUN apt-get update && \ - apt install -y --allow-unauthenticated --allow-downgrades \ - build-essential \ - autoconf-archive \ - gnu-standards \ - at \ - autopkgtest \ - gcc-multilib \ - g++-multilib \ - libxkbcommon-dev \ - zlib1g-dev \ - libfreetype6-dev \ - libegl1-mesa-dev \ - libgles2-mesa-dev \ - libgbm-dev \ - nvidia-cg-toolkit \ - nvidia-cg-dev \ - libavcodec-dev \ - libsdl2-dev \ - libsdl-image1.2-dev \ - libxml2-dev yasm \ - devscripts \ - autoconf \ - automake \ - libtool \ - autotools-dev \ - dpkg-dev \ - fakeroot \ - checkinstall \ - dh-make \ - zlib1g \ - zlib1g-dev \ - libssl-dev \ - libxml2-dev \ - libxslt-dev \ - libgd-dev \ - libpcre3-dev \ - libgeoip-dev \ - libkrb5-dev \ - libperl-dev \ - krb5-user \ - luajit \ - liblua5.1-0-dev \ - libmaxminddb-dev \ - libpam0g-dev \ - libldap2-dev \ - libavformat-dev \ - libavfilter-dev \ - libswscale-dev \ - libavcodec-dev \ - libz-dev \ - libhiredis-dev \ - libzip-dev \ - libcrypto++-dev \ - libbz2-dev \ - libvpx-dev \ - libvpx6 \ - tcl - - -################################################################## -# other customisations -################################################################## - - -################################################################## -# cleaninig up -################################################################## -RUN apt purge policykit-1 -y && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb diff --git a/linux/epicmorg/devel/main/Makefile b/linux/epicmorg/devel/main/Makefile deleted file mode 100644 index e40fa6bff..000000000 --- a/linux/epicmorg/devel/main/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgdev -emgdev: - docker build --compress -t epicmorg/devel . - docker push epicmorg/devel - diff --git a/linux/epicmorg/edge/jdk11/Makefile b/linux/epicmorg/edge/jdk11/Makefile deleted file mode 100644 index 1bcad05b2..000000000 --- a/linux/epicmorg/edge/jdk11/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgdev -emgdev: - docker build --compress -t epicmorg/edge:jdk11 . - docker push epicmorg/edge:jdk11 - diff --git a/linux/epicmorg/edge/jdk6/Makefile b/linux/epicmorg/edge/jdk6/Makefile deleted file mode 100644 index d02c51767..000000000 --- a/linux/epicmorg/edge/jdk6/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/edge:jdk6 . - docker push epicmorg/edge:jdk6 - diff --git a/linux/epicmorg/edge/jdk7/Makefile b/linux/epicmorg/edge/jdk7/Makefile deleted file mode 100644 index ca513d304..000000000 --- a/linux/epicmorg/edge/jdk7/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/edge:jdk7 . - docker push epicmorg/edge:jdk7 - diff --git a/linux/epicmorg/edge/jdk8/Makefile b/linux/epicmorg/edge/jdk8/Makefile deleted file mode 100644 index 6a17f6dc8..000000000 --- a/linux/epicmorg/edge/jdk8/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgdev -emgdev: - docker build --compress -t epicmorg/edge:jdk8 . - docker push epicmorg/edge:jdk8 - diff --git a/linux/epicmorg/edge/main/Dockerfile b/linux/epicmorg/edge/main/Dockerfile deleted file mode 100644 index bf708c21e..000000000 --- a/linux/epicmorg/edge/main/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -FROM epicmorg/prod -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# sid sources list -################################################################## -COPY sources.sid.list /etc/apt/sources.list.d/sources.sid.list -RUN apt update && \ - apt autoremove -y && \ - apt-get install -y -o APT::Immediate-Configure=0 -t sid libc6 && \ - apt dist-upgrade -y && \ - apt autoremove -y - -################################################################## -# cleaninig up -################################################################## -RUN apt purge policykit-1 -y && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb diff --git a/linux/epicmorg/edge/main/Makefile b/linux/epicmorg/edge/main/Makefile deleted file mode 100644 index c44f1d984..000000000 --- a/linux/epicmorg/edge/main/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgdev -emgdev: - docker build --compress -t epicmorg/edge . - docker push epicmorg/edge - diff --git a/linux/epicmorg/prod/jdk11/Makefile b/linux/epicmorg/prod/jdk11/Makefile deleted file mode 100644 index 0e1191be5..000000000 --- a/linux/epicmorg/prod/jdk11/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/prod:jdk11 . - docker push epicmorg/prod:jdk11 - diff --git a/linux/epicmorg/prod/jdk6/Makefile b/linux/epicmorg/prod/jdk6/Makefile deleted file mode 100644 index fa42f0e27..000000000 --- a/linux/epicmorg/prod/jdk6/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/prod:jdk6 . - docker push epicmorg/prod:jdk6 - diff --git a/linux/epicmorg/prod/jdk7/Makefile b/linux/epicmorg/prod/jdk7/Makefile deleted file mode 100644 index 5288c1ad5..000000000 --- a/linux/epicmorg/prod/jdk7/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/prod:jdk7 . - docker push epicmorg/prod:jdk7 - diff --git a/linux/epicmorg/prod/jdk8/Makefile b/linux/epicmorg/prod/jdk8/Makefile deleted file mode 100644 index 7ee8c155f..000000000 --- a/linux/epicmorg/prod/jdk8/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/prod:jdk8 . - docker push epicmorg/prod:jdk8 - diff --git a/linux/epicmorg/prod/main/Dockerfile b/linux/epicmorg/prod/main/Dockerfile deleted file mode 100644 index 60b650f00..000000000 --- a/linux/epicmorg/prod/main/Dockerfile +++ /dev/null @@ -1,90 +0,0 @@ -FROM debian:buster-slim -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# buster sources list -################################################################## -COPY deb-multimedia-keyring.gpg /etc/apt/trusted.gpg.d/deb-multimedia-keyring.gpg -RUN rm /etc/apt/sources.list -COPY sources.list /etc/apt/sources.list -RUN apt update && apt dist-upgrade -y -COPY locale.gen /etc/locale.gen -RUN for i in $(seq 1 8); do mkdir -p "/usr/share/man/man${i}"; done - -################################################################## -# perforce client binary -################################################################## -ARG P4_VERSION=r20.1 -ARG P4_DOWNLOAD_URL=http://www.perforce.com/downloads/perforce/${P4_VERSION}/bin.linux26x86_64/p4 - -################################################################## -# installing utils -################################################################## -RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ - apt-get update && \ - apt-get install -y --allow-unauthenticated \ - apt-transport-https \ - apt-utils \ - aptitude \ - bash \ - binutils \ - ca-certificates \ - cmatrix \ - cmatrix-xfont \ - console-cyrillic \ - cron \ - curl \ - dos2unix \ - ffmpeg \ - fontconfig \ - git \ - gnupg \ - gnupg2 \ - graphicsmagick \ - htop \ - iftop \ - iputils-ping \ - jq \ - kmod \ - libsvn-java \ - libzip4 \ - locales \ - lsb-release \ - lsof \ - lynx \ - mc \ - mercurial \ - nano \ - nload \ - nmap \ - openssl \ - perl \ - procps \ - rsync \ - screenfetch \ - smbclient \ - software-properties-common \ - subversion \ - sudo \ - telnet \ - tini \ - tmux \ - tree \ - ttf-dejavu \ - util-linux \ - uuid-runtime \ - wget \ - zip && \ - wget -nv --random-wait -c -P /usr/bin ${P4_DOWNLOAD_URL} && \ - chmod +x /usr/bin/p4 && \ - openssl dhparam -out /etc/ssl/dhparam.pem 4096 - -################################################################## -# cleaninig up -################################################################## -RUN apt purge policykit-1 -y && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb diff --git a/linux/epicmorg/prod/main/Makefile b/linux/epicmorg/prod/main/Makefile deleted file mode 100644 index 9c6cb3e47..000000000 --- a/linux/epicmorg/prod/main/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/prod . - docker push epicmorg/prod - diff --git a/linux/epicmorg/prod/main/sources.list b/linux/epicmorg/prod/main/sources.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/epicmorg/prod/main/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#main -deb http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free - -#security -deb http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free - -##multimedia -#deb http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb http://ftp.ru.debian.org/debian-multimedia/ buster-backports main -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/mattermost/latest/Makefile b/linux/mattermost/latest/Makefile deleted file mode 100644 index cac53052c..000000000 --- a/linux/mattermost/latest/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: mmed -mmed: - docker build --compress -t epicmorg/mattermost-enterprise-edition . - docker push epicmorg/mattermost-enterprise-edition:latest diff --git a/linux/nextcloud/14/Dockerfile b/linux/nextcloud/14/Dockerfile deleted file mode 100644 index c28f1b3c0..000000000 --- a/linux/nextcloud/14/Dockerfile +++ /dev/null @@ -1,72 +0,0 @@ -FROM nextcloud:14 -ENV DEBIAN_FRONTEND noninteractive - -################################################################## -# adding normal sources list -################################################################## -RUN rm /etc/apt/sources.list -COPY sources.list /etc/apt/sources.list - -################################################################## -# adding some utils -################################################################## -RUN apt update -y && \ - apt dist-upgrade -y && \ - apt install -y --allow-unauthenticated \ - apt-transport-https \ - curl \ - ca-certificates \ - ghostscript \ - nload \ - htop \ - mc \ - nano \ - sudo \ - imagemagick \ - imagemagick-common \ - sqlite3 \ - smbclient \ - libsmbclient \ - wget - -################################################################## -# installing php repo + smbclient -################################################################## -RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' -RUN apt update -y && \ - apt install -y --allow-unauthenticated \ - libsmbclient-dev \ - libmagickwand-dev \ - libmagickcore-dev \ - libc-client-dev \ - libkrb5-dev \ - libsqlite3-dev \ - libssl-dev - -RUN pecl install inotify && \ - docker-php-ext-enable inotify - -RUN pecl install smbclient && \ - docker-php-ext-enable smbclient - -RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ - docker-php-ext-install imap && \ - docker-php-ext-enable imap - -RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ - docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite - -################################################################## -# thank u, mac users. rolling back normal ZipStreammer -################################################################## -RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php -ADD Streamer.php /usr/src/nextcloud/lib/private/ -RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php - -################################################################## -# smb fix -################################################################## -RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf -ADD smb.conf /etc/samba/ -ADD smb.conf /usr/share/samba/ diff --git a/linux/nextcloud/14/Makefile b/linux/nextcloud/14/Makefile deleted file mode 100644 index 648223576..000000000 --- a/linux/nextcloud/14/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:14 . - docker push epicmorg/nextcloud:14 - diff --git a/linux/nextcloud/14/sources.list b/linux/nextcloud/14/sources.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nextcloud/14/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#main -deb http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free - -#security -deb http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free - -##multimedia -#deb http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb http://ftp.ru.debian.org/debian-multimedia/ buster-backports main -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/nextcloud/15/Dockerfile b/linux/nextcloud/15/Dockerfile deleted file mode 100644 index 3ccf2cadb..000000000 --- a/linux/nextcloud/15/Dockerfile +++ /dev/null @@ -1,72 +0,0 @@ -FROM nextcloud:15 -ENV DEBIAN_FRONTEND noninteractive - -################################################################## -# adding normal sources list -################################################################## -RUN rm /etc/apt/sources.list -COPY sources.list /etc/apt/sources.list - -################################################################## -# adding some utils -################################################################## -RUN apt update -y && \ - apt dist-upgrade -y && \ - apt install -y --allow-unauthenticated \ - apt-transport-https \ - curl \ - ca-certificates \ - ghostscript \ - nload \ - htop \ - mc \ - nano \ - sudo \ - imagemagick \ - imagemagick-common \ - sqlite3 \ - smbclient \ - libsmbclient \ - wget - -################################################################## -# installing php repo + smbclient -################################################################## -RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' -RUN apt update -y && \ - apt install -y --allow-unauthenticated \ - libsmbclient-dev \ - libmagickwand-dev \ - libmagickcore-dev \ - libc-client-dev \ - libkrb5-dev \ - libsqlite3-dev \ - libssl-dev - -RUN pecl install inotify && \ - docker-php-ext-enable inotify - -RUN pecl install smbclient && \ - docker-php-ext-enable smbclient - -RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ - docker-php-ext-install imap && \ - docker-php-ext-enable imap - -RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ - docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite - -################################################################## -# thank u, mac users. rolling back normal ZipStreammer -################################################################## -RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php -ADD Streamer.php /usr/src/nextcloud/lib/private/ -RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php - -################################################################## -# smb fix -################################################################## -RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf -ADD smb.conf /etc/samba/ -ADD smb.conf /usr/share/samba/ diff --git a/linux/nextcloud/15/Makefile b/linux/nextcloud/15/Makefile deleted file mode 100644 index 75c2ae4ab..000000000 --- a/linux/nextcloud/15/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:15 . - docker push epicmorg/nextcloud:15 - diff --git a/linux/nextcloud/15/sources.list b/linux/nextcloud/15/sources.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nextcloud/15/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#main -deb http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free - -#security -deb http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free - -##multimedia -#deb http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb http://ftp.ru.debian.org/debian-multimedia/ buster-backports main -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/nextcloud/16/Dockerfile b/linux/nextcloud/16/Dockerfile deleted file mode 100644 index 56d778f3c..000000000 --- a/linux/nextcloud/16/Dockerfile +++ /dev/null @@ -1,72 +0,0 @@ -FROM nextcloud:16 -ENV DEBIAN_FRONTEND noninteractive - -################################################################## -# adding normal sources list -################################################################## -RUN rm /etc/apt/sources.list -COPY sources.list /etc/apt/sources.list - -################################################################## -# adding some utils -################################################################## -RUN apt update -y && \ - apt dist-upgrade -y && \ - apt install -y --allow-unauthenticated \ - apt-transport-https \ - curl \ - ca-certificates \ - ghostscript \ - nload \ - htop \ - mc \ - nano \ - sudo \ - imagemagick \ - imagemagick-common \ - sqlite3 \ - smbclient \ - libsmbclient \ - wget - -################################################################## -# installing php repo + smbclient -################################################################## -RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' -RUN apt update -y && \ - apt install -y --allow-unauthenticated \ - libsmbclient-dev \ - libmagickwand-dev \ - libmagickcore-dev \ - libc-client-dev \ - libkrb5-dev \ - libsqlite3-dev \ - libssl-dev - -RUN pecl install inotify && \ - docker-php-ext-enable inotify - -RUN pecl install smbclient && \ - docker-php-ext-enable smbclient - -RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ - docker-php-ext-install imap && \ - docker-php-ext-enable imap - -RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ - docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite - -################################################################## -# thank u, mac users. rolling back normal ZipStreammer -################################################################## -RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php -ADD Streamer.php /usr/src/nextcloud/lib/private/ -RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php - -################################################################## -# smb fix -################################################################## -RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf -ADD smb.conf /etc/samba/ -ADD smb.conf /usr/share/samba/ diff --git a/linux/nextcloud/16/Makefile b/linux/nextcloud/16/Makefile deleted file mode 100644 index 43616fc33..000000000 --- a/linux/nextcloud/16/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:16 . - docker push epicmorg/nextcloud:16 - diff --git a/linux/nextcloud/16/sources.list b/linux/nextcloud/16/sources.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nextcloud/16/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#main -deb http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free - -#security -deb http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free - -##multimedia -#deb http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb http://ftp.ru.debian.org/debian-multimedia/ buster-backports main -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/nextcloud/17/Dockerfile b/linux/nextcloud/17/Dockerfile deleted file mode 100644 index d8615bb38..000000000 --- a/linux/nextcloud/17/Dockerfile +++ /dev/null @@ -1,72 +0,0 @@ -FROM nextcloud:17 -ENV DEBIAN_FRONTEND noninteractive - -################################################################## -# adding normal sources list -################################################################## -RUN rm /etc/apt/sources.list -COPY sources.list /etc/apt/sources.list - -################################################################## -# adding some utils -################################################################## -RUN apt update -y && \ - apt dist-upgrade -y && \ - apt install -y --allow-unauthenticated \ - apt-transport-https \ - curl \ - ca-certificates \ - ghostscript \ - nload \ - htop \ - mc \ - nano \ - sudo \ - imagemagick \ - imagemagick-common \ - sqlite3 \ - smbclient \ - libsmbclient \ - wget - -################################################################## -# installing php repo + smbclient -################################################################## -RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' -RUN apt update -y && \ - apt install -y --allow-unauthenticated \ - libsmbclient-dev \ - libmagickwand-dev \ - libmagickcore-dev \ - libc-client-dev \ - libkrb5-dev \ - libsqlite3-dev \ - libssl-dev - -RUN pecl install inotify && \ - docker-php-ext-enable inotify - -RUN pecl install smbclient && \ - docker-php-ext-enable smbclient - -RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ - docker-php-ext-install imap && \ - docker-php-ext-enable imap - -RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ - docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite - -################################################################## -# thank u, mac users. rolling back normal ZipStreammer -################################################################## -RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php -ADD Streamer.php /usr/src/nextcloud/lib/private/ -RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php - -################################################################## -# smb fix -################################################################## -RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf -ADD smb.conf /etc/samba/ -ADD smb.conf /usr/share/samba/ diff --git a/linux/nextcloud/17/Makefile b/linux/nextcloud/17/Makefile deleted file mode 100644 index 40f598ad5..000000000 --- a/linux/nextcloud/17/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:17 . - docker push epicmorg/nextcloud:17 - diff --git a/linux/nextcloud/17/sources.list b/linux/nextcloud/17/sources.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nextcloud/17/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#main -deb http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free - -#security -deb http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free - -##multimedia -#deb http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb http://ftp.ru.debian.org/debian-multimedia/ buster-backports main -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/nextcloud/18/Dockerfile b/linux/nextcloud/18/Dockerfile deleted file mode 100644 index 99d9e87b2..000000000 --- a/linux/nextcloud/18/Dockerfile +++ /dev/null @@ -1,72 +0,0 @@ -FROM nextcloud:18 -ENV DEBIAN_FRONTEND noninteractive - -################################################################## -# adding normal sources list -################################################################## -RUN rm /etc/apt/sources.list -COPY sources.list /etc/apt/sources.list - -################################################################## -# adding some utils -################################################################## -RUN apt update -y && \ - apt dist-upgrade -y && \ - apt install -y --allow-unauthenticated \ - apt-transport-https \ - curl \ - ca-certificates \ - ghostscript \ - nload \ - htop \ - mc \ - nano \ - sudo \ - imagemagick \ - imagemagick-common \ - sqlite3 \ - smbclient \ - libsmbclient \ - wget - -################################################################## -# installing php repo + smbclient -################################################################## -RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' -RUN apt update -y && \ - apt install -y --allow-unauthenticated \ - libsmbclient-dev \ - libmagickwand-dev \ - libmagickcore-dev \ - libc-client-dev \ - libkrb5-dev \ - libsqlite3-dev \ - libssl-dev - -RUN pecl install inotify && \ - docker-php-ext-enable inotify - -RUN pecl install smbclient && \ - docker-php-ext-enable smbclient - -RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ - docker-php-ext-install imap && \ - docker-php-ext-enable imap - -RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ - docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite - -################################################################## -# thank u, mac users. rolling back normal ZipStreammer -################################################################## -RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php -ADD Streamer.php /usr/src/nextcloud/lib/private/ -RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php - -################################################################## -# smb fix -################################################################## -RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf -ADD smb.conf /etc/samba/ -ADD smb.conf /usr/share/samba/ diff --git a/linux/nextcloud/18/Makefile b/linux/nextcloud/18/Makefile deleted file mode 100644 index 81d7153d8..000000000 --- a/linux/nextcloud/18/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:18 . - docker push epicmorg/nextcloud:18 \ No newline at end of file diff --git a/linux/nextcloud/18/sources.list b/linux/nextcloud/18/sources.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nextcloud/18/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#main -deb http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free - -#security -deb http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free - -##multimedia -#deb http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb http://ftp.ru.debian.org/debian-multimedia/ buster-backports main -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/nextcloud/19/Dockerfile b/linux/nextcloud/19/Dockerfile deleted file mode 100644 index 91f561a60..000000000 --- a/linux/nextcloud/19/Dockerfile +++ /dev/null @@ -1,72 +0,0 @@ -FROM nextcloud:19 -ENV DEBIAN_FRONTEND noninteractive - -################################################################## -# adding normal sources list -################################################################## -RUN rm /etc/apt/sources.list -COPY sources.list /etc/apt/sources.list - -################################################################## -# adding some utils -################################################################## -RUN apt update -y && \ - apt dist-upgrade -y && \ - apt install -y --allow-unauthenticated \ - apt-transport-https \ - curl \ - ca-certificates \ - ghostscript \ - nload \ - htop \ - mc \ - nano \ - sudo \ - imagemagick \ - imagemagick-common \ - sqlite3 \ - smbclient \ - libsmbclient \ - wget - -################################################################## -# installing php repo + smbclient -################################################################## -RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' -RUN apt update -y && \ - apt install -y --allow-unauthenticated \ - libsmbclient-dev \ - libmagickwand-dev \ - libmagickcore-dev \ - libc-client-dev \ - libkrb5-dev \ - libsqlite3-dev \ - libssl-dev - -RUN pecl install inotify && \ - docker-php-ext-enable inotify - -RUN pecl install smbclient && \ - docker-php-ext-enable smbclient - -RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ - docker-php-ext-install imap && \ - docker-php-ext-enable imap - -RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ - docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite - -################################################################## -# thank u, mac users. rolling back normal ZipStreammer -################################################################## -RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php -ADD Streamer.php /usr/src/nextcloud/lib/private/ -RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php - -################################################################## -# smb fix -################################################################## -RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf -ADD smb.conf /etc/samba/ -ADD smb.conf /usr/share/samba/ diff --git a/linux/nextcloud/19/Makefile b/linux/nextcloud/19/Makefile deleted file mode 100644 index 9822b1cf2..000000000 --- a/linux/nextcloud/19/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:19 . - docker push epicmorg/nextcloud:19 \ No newline at end of file diff --git a/linux/nextcloud/19/sources.list b/linux/nextcloud/19/sources.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nextcloud/19/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#main -deb http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free - -#security -deb http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free - -##multimedia -#deb http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb http://ftp.ru.debian.org/debian-multimedia/ buster-backports main -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/nextcloud/20/Dockerfile b/linux/nextcloud/20/Dockerfile deleted file mode 100644 index 885ad87a5..000000000 --- a/linux/nextcloud/20/Dockerfile +++ /dev/null @@ -1,72 +0,0 @@ -FROM nextcloud:20 -ENV DEBIAN_FRONTEND noninteractive - -################################################################## -# adding normal sources list -################################################################## -RUN rm /etc/apt/sources.list -COPY sources.list /etc/apt/sources.list - -################################################################## -# adding some utils -################################################################## -RUN apt update -y && \ - apt dist-upgrade -y && \ - apt install -y --allow-unauthenticated \ - apt-transport-https \ - curl \ - ca-certificates \ - ghostscript \ - nload \ - htop \ - mc \ - nano \ - sudo \ - imagemagick \ - imagemagick-common \ - sqlite3 \ - smbclient \ - libsmbclient \ - wget - -################################################################## -# installing php repo + smbclient -################################################################## -RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' -RUN apt update -y && \ - apt install -y --allow-unauthenticated \ - libsmbclient-dev \ - libmagickwand-dev \ - libmagickcore-dev \ - libc-client-dev \ - libkrb5-dev \ - libsqlite3-dev \ - libssl-dev - -RUN pecl install inotify && \ - docker-php-ext-enable inotify - -RUN pecl install smbclient && \ - docker-php-ext-enable smbclient - -RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ - docker-php-ext-install imap && \ - docker-php-ext-enable imap - -RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ - docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite - -################################################################## -# thank u, mac users. rolling back normal ZipStreammer -################################################################## -RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php -ADD Streamer.php /usr/src/nextcloud/lib/private/ -RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php - -################################################################## -# smb fix -################################################################## -RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf -ADD smb.conf /etc/samba/ -ADD smb.conf /usr/share/samba/ diff --git a/linux/nextcloud/20/Makefile b/linux/nextcloud/20/Makefile deleted file mode 100644 index f68f3520d..000000000 --- a/linux/nextcloud/20/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:20 . - docker push epicmorg/nextcloud:20 \ No newline at end of file diff --git a/linux/nextcloud/20/sources.list b/linux/nextcloud/20/sources.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nextcloud/20/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#main -deb http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free - -#security -deb http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free - -##multimedia -#deb http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb http://ftp.ru.debian.org/debian-multimedia/ buster-backports main -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/nextcloud/21/Dockerfile b/linux/nextcloud/21/Dockerfile deleted file mode 100644 index 7179f8788..000000000 --- a/linux/nextcloud/21/Dockerfile +++ /dev/null @@ -1,72 +0,0 @@ -FROM nextcloud:21 -ENV DEBIAN_FRONTEND noninteractive - -################################################################## -# adding normal sources list -################################################################## -RUN rm /etc/apt/sources.list -COPY sources.list /etc/apt/sources.list - -################################################################## -# adding some utils -################################################################## -RUN apt update -y && \ - apt dist-upgrade -y && \ - apt install -y --allow-unauthenticated \ - apt-transport-https \ - curl \ - ca-certificates \ - ghostscript \ - nload \ - htop \ - mc \ - nano \ - sudo \ - imagemagick \ - imagemagick-common \ - sqlite3 \ - smbclient \ - libsmbclient \ - wget - -################################################################## -# installing php repo + smbclient -################################################################## -RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' -RUN apt update -y && \ - apt install -y --allow-unauthenticated \ - libsmbclient-dev \ - libmagickwand-dev \ - libmagickcore-dev \ - libc-client-dev \ - libkrb5-dev \ - libsqlite3-dev \ - libssl-dev - -RUN pecl install inotify && \ - docker-php-ext-enable inotify - -RUN pecl install smbclient && \ - docker-php-ext-enable smbclient - -RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ - docker-php-ext-install imap && \ - docker-php-ext-enable imap - -RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ - docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite - -################################################################## -# thank u, mac users. rolling back normal ZipStreammer -################################################################## -RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php -ADD Streamer.php /usr/src/nextcloud/lib/private/ -RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php - -################################################################## -# smb fix -################################################################## -RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf -ADD smb.conf /etc/samba/ -ADD smb.conf /usr/share/samba/ diff --git a/linux/nextcloud/21/Makefile b/linux/nextcloud/21/Makefile deleted file mode 100644 index 0265b925e..000000000 --- a/linux/nextcloud/21/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:21 . - docker push epicmorg/nextcloud:21 \ No newline at end of file diff --git a/linux/nextcloud/21/sources.list b/linux/nextcloud/21/sources.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nextcloud/21/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#main -deb http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free - -#security -deb http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free - -##multimedia -#deb http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb http://ftp.ru.debian.org/debian-multimedia/ buster-backports main -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/nextcloud/latest/Dockerfile b/linux/nextcloud/latest/Dockerfile deleted file mode 100644 index 6961dd270..000000000 --- a/linux/nextcloud/latest/Dockerfile +++ /dev/null @@ -1,72 +0,0 @@ -FROM nextcloud:latest -ENV DEBIAN_FRONTEND noninteractive - -################################################################## -# adding normal sources list -################################################################## -RUN rm /etc/apt/sources.list -COPY sources.list /etc/apt/sources.list - -################################################################## -# adding some utils -################################################################## -RUN apt update -y && \ - apt dist-upgrade -y && \ - apt install -y --allow-unauthenticated \ - apt-transport-https \ - curl \ - ca-certificates \ - ghostscript \ - nload \ - htop \ - mc \ - nano \ - sudo \ - imagemagick \ - imagemagick-common \ - sqlite3 \ - smbclient \ - libsmbclient \ - wget - -################################################################## -# installing php repo + smbclient -################################################################## -RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' -RUN apt update -y && \ - apt install -y --allow-unauthenticated \ - libsmbclient-dev \ - libmagickwand-dev \ - libmagickcore-dev \ - libc-client-dev \ - libkrb5-dev \ - libsqlite3-dev \ - libssl-dev - -RUN pecl install inotify && \ - docker-php-ext-enable inotify - -RUN pecl install smbclient && \ - docker-php-ext-enable smbclient - -RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ - docker-php-ext-install imap && \ - docker-php-ext-enable imap - -RUN docker-php-ext-install fileinfo bz2 intl ftp pdo_sqlite && \ - docker-php-ext-enable fileinfo bz2 intl ftp pdo_sqlite - -################################################################## -# thank u, mac users. rolling back normal ZipStreammer -################################################################## -RUN rm -frv /usr/src/nextcloud/lib/private/Streamer.php -ADD Streamer.php /usr/src/nextcloud/lib/private/ -RUN chown nobody:nogroup /usr/src/nextcloud/lib/private/Streamer.php - -################################################################## -# smb fix -################################################################## -RUN rm -frv /etc/samba/smb.conf /usr/share/samba/smb.conf -ADD smb.conf /etc/samba/ -ADD smb.conf /usr/share/samba/ diff --git a/linux/nextcloud/latest/Makefile b/linux/nextcloud/latest/Makefile deleted file mode 100644 index 6cee66f73..000000000 --- a/linux/nextcloud/latest/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:latest . - docker push epicmorg/nextcloud:latest \ No newline at end of file diff --git a/linux/nextcloud/latest/sources.list b/linux/nextcloud/latest/sources.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nextcloud/latest/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#main -deb http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free - -#security -deb http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free - -##multimedia -#deb http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb http://ftp.ru.debian.org/debian-multimedia/ buster-backports main -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/nginx/latest/Dockerfile b/linux/nginx/latest/Dockerfile deleted file mode 100644 index fe651414c..000000000 --- a/linux/nginx/latest/Dockerfile +++ /dev/null @@ -1,225 +0,0 @@ -FROM epicmorg/devel AS builder -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ENV BuildDocker true -ARG BUILDS_DIR=/builds -ARG SRC_DIR=${BUILDS_DIR}/src -ARG EXPORT_DIR=${BUILDS_DIR}/export -ARG PRE_DIR=${BUILDS_DIR}/pre -ARG NGINX_SRC_DIR=${SRC_DIR}/nginx -ARG NGINX_VERSION=1.19.9 -ARG NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz -ARG LUAJIT_INC=/usr/local/include/luajit-2.1 -ARG LUAJIT_LIB=/usr/local/lib - -################################################################## -# Files and folders -################################################################## -RUN mkdir -p ${PRE_DIR} ${NGINX_SRC_DIR} /usr/lib/nginx -ADD pre/luajit2-description-pak ${PRE_DIR} -ADD pre/nginx-description-pak ${PRE_DIR} -ADD pre/ip2location-description-pak ${PRE_DIR} - -################################################################## -# IP2Location support for prod nginx module -################################################################## -RUN cd ${SRC_DIR} && \ - git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2 && \ - cp -fv ${PRE_DIR}/ip2location-description-pak ${SRC_DIR}/ip2/description-pak && \ - cd ${SRC_DIR}/ip2 && \ - ./build.sh && \ - fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=ip2-custom --conflicts=ip2 --install=yes -y && \ - ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ - ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ - ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ - ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ - ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ - ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ - dpkg --force-all -i ${EXPORT_DIR}/*.deb - -################################################################## -# luaJIT 2 support for prod nginx module -################################################################## -RUN cd ${SRC_DIR} && \ - git clone https://github.com/openresty/luajit2.git luajit2 && \ - cp -fv ${PRE_DIR}/luajit2-description-pak ${SRC_DIR}/luajit2/description-pak && \ - cd ${SRC_DIR}/luajit2 && \ - make && \ - make install && \ - fakeroot checkinstall -D --pakdir=${EXPORT_DIR} --maintainer="EpicMorg, developer@epicm.org" --pkgname=luajit2-custom --conflicts=luajit2 --install=no -y - -################################################################## -# nginx preparing -################################################################## -RUN wget -qO - ${NGINX_DOWNLOAD_URL} | tar -zxv --strip-components=1 -C ${NGINX_SRC_DIR} && \ - cd ${NGINX_SRC_DIR} && \ - git clone https://github.com/openresty/headers-more-nginx-module.git http-headers-more-filter && \ - git clone https://github.com/sto/ngx_http_auth_pam_module.git http-auth-pam && \ - git clone https://github.com/arut/nginx-dav-ext-module.git http-dav-ext && \ - git clone https://github.com/openresty/echo-nginx-module.git http-echo && \ - git clone https://github.com/aperezdc/ngx-fancyindex.git http-fancyindex && \ - git clone https://github.com/slact/nchan.git nchan && \ - git clone https://github.com/masterzen/nginx-upload-progress-module.git http-uploadprogress && \ - git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module http-subs-filter && \ - git clone https://github.com/grahamedgecombe/nginx-ct.git ssl-ct && \ - git clone https://github.com/stnoonan/spnego-http-auth-nginx-module.git spnego-http-auth-nginx-module && \ - git clone https://github.com/leev/ngx_http_geoip2_module http-geoip2 && \ - git clone https://github.com/flavioribeiro/nginx-audio-track-for-hls-module.git nginx-audio-track-for-hls-module && \ - git clone https://github.com/chrislim2888/ip2location-nginx.git ip2location-nginx && \ - git clone https://github.com/kaltura/nginx-vod-module.git nginx-vod-module && \ - git clone https://github.com/vozlt/nginx-module-vts.git nginx-module-vts && \ - git clone https://github.com/evanmiller/mod_zip.git mod-zip && \ - git clone https://github.com/alibaba/nginx-http-user-agent.git nginx-http-user-agent && \ - git clone https://github.com/youzee/nginx-unzip-module.git nginx-unzip-module && \ - git clone https://github.com/vladbondarenko/ngx_webp.git ngx-webp && \ - git clone https://github.com/openresty/xss-nginx-module.git xss-nginx-module && \ - git clone https://github.com/openresty/set-misc-nginx-module.git set-misc-nginx-module && \ - git clone https://github.com/arut/nginx-rtmp-module.git rtmp && \ - git clone https://github.com/kvspb/nginx-auth-ldap.git http-auth-ldap && \ - git clone https://github.com/simplresty/ngx_devel_kit.git http-ndk && \ - git clone https://github.com/chrislim2888/IP2Location-C-Library.git ip2location-c-7.0.0 && \ - git clone https://github.com/itoffshore/nginx-upstream-fair.git http-upstream-fair && \ - git clone https://github.com/yaoweibin/nginx_upstream_check_module.git nginx-upstream-check-module && \ - git clone https://github.com/openresty/lua-nginx-module http-lua - -################################################################## -# nginx compilling -################################################################## -RUN cd ${NGINX_SRC_DIR} && \ - ./configure \ - --sbin-path=/usr/sbin/nginx \ - --prefix=/usr/share/nginx \ - --conf-path=/etc/nginx/nginx.conf \ - --http-log-path=/var/log/nginx/access.log \ - --error-log-path=/var/log/nginx/error.log \ - --lock-path=/var/lock/nginx.lock \ - --pid-path=/run/nginx.pid \ - --modules-path=/usr/lib/nginx/modules \ - --http-client-body-temp-path=/var/lib/nginx/body \ - --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ - --http-proxy-temp-path=/var/lib/nginx/proxy \ - --http-scgi-temp-path=/var/lib/nginx/scgi \ - --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ - --with-cc-opt='-I/usr/local/include/luajit-2.1 -g -O2 -lz -fstack-protector-strong -Wformat -Wno-error=date-time -Wno-error=implicit-fallthrough= -Wno-error=cast-function-type -Wno-error=format-security -Wno-error=implicit-function-declaration -Wno-error=deprecated-declarations -Wno-error=unused-result -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' \ - --with-ld-opt='-Wl,-z,relro -Wl,-z,now -lz -fPIC -L/usr/local/lib' \ - --with-file-aio \ - --with-compat \ - --with-debug \ - --with-threads \ - --with-pcre-jit \ - --with-http_ssl_module \ - --with-http_stub_status_module \ - --with-http_realip_module \ - --with-http_auth_request_module \ - --with-http_v2_module \ - --with-http_dav_module \ - --with-http_slice_module \ - --with-http_addition_module \ - --with-http_flv_module \ - --with-http_geoip_module=dynamic \ - --with-http_gunzip_module \ - --with-http_gzip_static_module \ - --with-http_image_filter_module=dynamic \ - --with-http_mp4_module \ - --with-http_perl_module=dynamic \ - --with-http_random_index_module \ - --with-http_secure_link_module \ - --with-http_sub_module \ - --with-http_xslt_module=dynamic \ - --with-mail=dynamic \ - --with-mail_ssl_module \ - --with-stream=dynamic \ - --with-stream_ssl_module \ - --with-stream_ssl_preread_module \ - --add-dynamic-module=http-headers-more-filter \ - --add-dynamic-module=http-auth-pam \ - --add-dynamic-module=http-dav-ext \ - --add-dynamic-module=http-ndk \ - --add-dynamic-module=http-echo \ - --add-dynamic-module=http-fancyindex \ - --add-dynamic-module=nchan \ - --add-dynamic-module=http-uploadprogress \ - --add-dynamic-module=http-subs-filter \ - --add-dynamic-module=ssl-ct \ - --add-dynamic-module=http-geoip2 \ - --add-dynamic-module=spnego-http-auth-nginx-module \ - --add-dynamic-module=http-auth-ldap \ - --add-dynamic-module=nginx-audio-track-for-hls-module \ - --add-dynamic-module=ip2location-nginx \ - --add-dynamic-module=nginx-vod-module \ -# --add-dynamic-module=nginx-module-vts \ - --add-dynamic-module=mod-zip \ - --add-dynamic-module=nginx-http-user-agent \ - --add-dynamic-module=nginx-unzip-module \ - --add-dynamic-module=ngx-webp \ - --add-dynamic-module=set-misc-nginx-module \ - --add-dynamic-module=rtmp \ - --add-dynamic-module=http-upstream-fair \ - --add-dynamic-module=nginx-upstream-check-module \ - --add-dynamic-module=http-lua && \ - cp -fv ${PRE_DIR}/nginx-description-pak ${NGINX_SRC_DIR}/description-pak && \ - fakeroot checkinstall -D --pakdir=/builds/export --maintainer="EpicMorg, developer@epicm.org" --pkgname=nginx-custom --install=no -y && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -################################################################## -################################################################## -################################################################## - -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# LDAP Fix -################################################################## -RUN echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf - -################################################################## -# Installing nginx from deb -################################################################## -ADD pre/ngninx.pre.tar.gz / -COPY --from=builder /builds/export /tmp/deb -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - geoip-database \ - geoip-bin \ - libgeoip1 \ - libmaxminddb0 \ - libgd3 \ - libxslt1.1 && \ - dpkg --force-all -i /tmp/deb/*.deb && \ - ln -s /usr/local/lib/libIP2Location.so /usr/lib/libIP2Location.so && \ - ln -s /usr/local/lib/libIP2Location.so.1 /usr/lib/libIP2Location.so.1 && \ - ln -s /usr/local/lib/libIP2Location.so.2 /usr/lib/libIP2Location.so.2 && \ - ln -s /usr/local/lib/libIP2Location.so.3 /usr/lib/libIP2Location.so.3 && \ - ln -s /usr/local/lib/libIP2Location.so.4 /usr/lib/libIP2Location.so.4 && \ - ln -s /usr/local/lib/libIP2Location.so.5 /usr/lib/libIP2Location.so.5 && \ - ln -s /usr/local/lib/libIP2Location.so /lib/libIP2Location.so && \ - ln -s /usr/local/lib/libIP2Location.so.1 /lib/libIP2Location.so.1 && \ - ln -s /usr/local/lib/libIP2Location.so.2 /lib/libIP2Location.so.2 && \ - ln -s /usr/local/lib/libIP2Location.so.3 /lib/libIP2Location.so.3 && \ - ln -s /usr/local/lib/libIP2Location.so.4 /lib/libIP2Location.so.4 && \ - ln -s /usr/local/lib/libIP2Location.so.5 /lib/libIP2Location.so.5 && \ - ln -sf /dev/stdout /var/log/nginx/access.log && \ - ln -sf /dev/stderr /var/log/nginx/error.log && \ - ln -sf /etc/ssl/dhparam.pem /etc/nginx/dhparam.pem && \ - apt clean -y && \ - apt autoclean -y && \ - rm -rf /var/lib/apt/lists/* && \ - rm -rf /var/cache/apt/archives/*.deb && \ - rm -rf /tmp/deb/* && \ - rm -rf /builds/* && \ - rm -rf /valve/* - -#Final config -VOLUME ["/var/cache/nginx"] -EXPOSE 80 443 - -CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/nginx/latest/Makefile b/linux/nginx/latest/Makefile deleted file mode 100644 index f2a6e0a32..000000000 --- a/linux/nginx/latest/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -all: nginx - -nginx: - docker build --compress -t epicmorg/nginx:latest . - docker push epicmorg/nginx:latest - - docker tag epicmorg/nginx:latest epicmorg/balancer:latest - docker push epicmorg/balancer:latest diff --git a/linux/nginx/php/Dockerfile b/linux/nginx/php/Dockerfile deleted file mode 100644 index 5b270dd89..000000000 --- a/linux/nginx/php/Dockerfile +++ /dev/null @@ -1,250 +0,0 @@ -FROM epicmorg/devel AS builder -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ENV BuildDocker true - -ARG BUILDS_DIR=/builds -ARG SRC_DIR=${BUILDS_DIR}/src -ARG EXPORT_DIR=${BUILDS_DIR}/export -ARG P4API_DIR=${SRC_DIR}/p4api -ARG P4PHP_DIR=${SRC_DIR}/p4php -ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 - -ARG P4API_VER=r20.1 -ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz - -ARG P4PHP_VER=r20.1 -ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz - -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 - -################################################################## -# Files and folders -################################################################## -RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} - -################################################################## -# Installing PHP7 -################################################################## -#installing php repo - -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - libmemcached-dev \ - smbclient libsmbclient libsmbclient-dev \ - php7.4 \ - php7.4-dev \ - php7.4-fpm \ - php7.4-cli \ - php7.4-cgi - -################################################################## -# preparing p4src -################################################################## -RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ - wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ - wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ - wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ - cd ${P4API_DIR} && \ - ls -las && \ - cd ${P4PHP_DIR} && \ - ls -las && \ - cd ${MAKE_DIR} && \ - ls -las && \ - cd ${SRC_DIR} && \ - ls -las - -################################################################## -# compilling p4src -################################################################## -RUN cd ${MAKE_DIR} && \ - ls -las && \ - phpize && \ - ./configure --with-perforce=${P4API_DIR} && \ - make && \ - make test && \ - make install && \ - cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} - - -################################################################## -# compilling smbclient -################################################################## -RUN pecl install smbclient && \ - cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} - -################################################################## -################################################################## -################################################################## - - -FROM epicmorg/nginx:latest -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Installing php fpm for nginx from deb -################################################################## -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 -ARG PHP_VER=7.4 -ARG PHP_DIR=/etc/php/${PHP_VER} -ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini -ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini - -################################################################## -# Installing PHP7 -################################################################## -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - php7.4 \ - php7.4-dev \ - php7.4-fpm \ - php7.4-cli \ - php7.4-cgi \ - php-pear \ - php7.4-gmp \ - php7.4-snmp \ - php7.4-ldap \ - php7.4-mail \ - php7.4-soap \ - php7.4-mysql \ - php7.4-memcached \ - php7.4-memcache \ - php7.4-igbinary \ - php7.4-interbase \ - php7.4-curl \ - php7.4-gd \ - php7.4-intl \ - php7.4-zip \ - php7.4-bcmath \ - php7.4-imap \ - php7.4-pspell \ - php7.4-sqlite3 \ - php7.4-tidy \ - php7.4-xmlrpc \ - php7.4-xml \ - php7.4-mbstring \ - php7.4-apcu \ - php7.4-common \ - php7.4-json \ - php7.4-readline \ - php7.4-enchant \ - php7.4-ssh2 \ - php7.4-oauth \ - php7.4-gmagick \ - php7.4-gnupg \ - php7.4-redis \ - smbclient libsmbclient \ -# php-smbclient \ - php7.4-yaml \ - php7.4-geoip \ - sendmail && \ - update-alternatives --set php /usr/bin/php7.4 && \ - phpenmod \ - snmp \ - gmp \ - calendar \ - ldap \ - curl \ - exif \ - ftp \ - fileinfo \ - gd \ - geoip \ - gnupg \ - iconv \ - imap \ - json \ - mbstring \ - memcached \ - mysqli \ - mysqlnd \ - oauth \ - pdo_mysql \ - pdo_sqlite \ - phar \ - posix \ - readline \ - redis \ - simplexml \ - sockets \ - sqlite3 \ - ssh2 \ - tokenizer \ - xml \ - xmlreader \ - xmlrpc \ - xmlwriter \ - xsl \ - yaml && \ - ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ - php -v - -################################################################## -# Installing IOnCube addon -################################################################## -ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz -RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ - cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ -# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ - php -m && \ - php -v - -################################################################## -# Installing P4 addon -################################################################## -COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} -RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ - php -m && \ - php -v - -################################################################## -# Installing smbclient addon -################################################################## -COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} -RUN echo "extension=smbclient.so" > ${SMB_PHP_INI} && \ - ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ - ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ - ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ - php -m && \ - php -v - - - -################################################################## -# Installing Composer addon -################################################################## -RUN cd /tmp && \ - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ - php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ - rm /tmp/composer-setup.php - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz - -#Final config -VOLUME ["/var/cache/nginx"] -EXPOSE 80 443 - -CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/nginx/php/Makefile b/linux/nginx/php/Makefile deleted file mode 100644 index ebf972813..000000000 --- a/linux/nginx/php/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -all: nginx - -nginx: - docker build --compress -t epicmorg/nginx:php . - docker push epicmorg/nginx:php - - docker tag epicmorg/nginx:php epicmorg/balancer:php - docker push epicmorg/balancer:php diff --git a/linux/nginx/rtmp-hls/Dockerfile b/linux/nginx/rtmp-hls/Dockerfile deleted file mode 100644 index e986263e2..000000000 --- a/linux/nginx/rtmp-hls/Dockerfile +++ /dev/null @@ -1,114 +0,0 @@ -FROM epicmorg/nginx -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -ARG NGINX_RTMP_MODULE_VERSION=1.2.1 - -################################################################## -# sid sources list -################################################################## -RUN rm -rfv /etc/apt/sources.list -COPY sources.list.d/sources.sid.list /etc/apt/sources.list -RUN apt update - -################################################################## -# installing utils -################################################################## -RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ - apt-get update && \ - apt-get install -y --allow-unauthenticated \ - libpcre3-dev \ - librtmp1 \ - libtheora0 \ - libvorbis-dev \ - libmp3lame0 \ - libx264-dev \ - libx265-dev - - -################################################################## -# stretch sources list + libvpx -################################################################## -RUN rm -rfv /etc/apt/sources.list -COPY sources.list.d/sources.stretch.list /etc/apt/sources.list -RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ - apt-get update && \ - apt-get install -y --allow-unauthenticated \ - libvpx4 - - -################################################################## -# buster sources list + libvpx -################################################################## -RUN rm -rfv /etc/apt/sources.list -COPY sources.list.d/sources.buster.list /etc/apt/sources.list -RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ - apt-get update && \ - apt-get install -y --allow-unauthenticated \ - libvpx5 - - -################################################################## -# sid sources list + libvpx -################################################################## -RUN rm -rfv /etc/apt/sources.list -COPY sources.list.d/sources.sid.list /etc/apt/sources.list -RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ - apt-get update && \ - apt-get install -y --allow-unauthenticated \ - libvpx6 - - -################################################################## -# installing deps for rtmp module -################################################################## -RUN mkdir -p /usr/share/nginx/html \ - /mnt/hls \ - /mnt/dash \ - /tmp/build && \ - chown -R www-data:www-data /mnt/hls && \ - chown -R www-data:www-data /mnt/dash && \ - chmod -R 755 /mnt/hls && \ - chmod -R 755 /mnt/dash && \ - cd /tmp/build && \ - wget https://github.com/arut/nginx-rtmp-module/archive/v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ - tar -zxf v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ - rm v${NGINX_RTMP_MODULE_VERSION}.tar.gz && \ - cp /tmp/build/nginx-rtmp-module-${NGINX_RTMP_MODULE_VERSION}/stat.xsl /usr/share/nginx/html/stat.xsl && \ - rm -rf /tmp/build - - -################################################################## -# Forward logs to Docker -################################################################## -RUN ln -sf /dev/stdout /var/log/nginx/access.log && \ - ln -sf /dev/stderr /var/log/nginx/error.log - - -################################################################## -# Copy nginx config file to container -################################################################## -RUN rm -rfv /etc/nginx/nginx.conf \ - /etc/nginx/sites-avalible/default -COPY conf/nginx.conf /etc/nginx/nginx.conf - - -################################################################## -# Copy html players to container -################################################################## -COPY players /usr/share/nginx/html/players - - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - - -EXPOSE 1935 -EXPOSE 8080 - -CMD ["nginx", "-g", "daemon off;"] diff --git a/linux/nginx/rtmp-hls/Makefile b/linux/nginx/rtmp-hls/Makefile deleted file mode 100644 index 6a0ebdef8..000000000 --- a/linux/nginx/rtmp-hls/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -all: nginx - -nginx: - docker build --compress -t epicmorg/nginx:rtmp-hls . - docker push epicmorg/nginx:rtmp-hls - - docker tag epicmorg/nginx:rtmp-hls epicmorg/balancer:rtmp-hls - docker push epicmorg/balancer:rtmp-hls diff --git a/linux/nginx/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/rtmp-hls/sources.list.d/sources.buster.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nginx/rtmp-hls/sources.list.d/sources.buster.list +++ /dev/null @@ -1,19 +0,0 @@ -#main -deb http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-updates main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-backports main contrib non-free -deb http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ buster-proposed-updates main contrib non-free - -#security -deb http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ buster/updates main contrib non-free - -##multimedia -#deb http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster main non-free -#deb http://ftp.ru.debian.org/debian-multimedia/ buster-backports main -#deb-src http://ftp.ru.debian.org/debian-multimedia/ buster-backports main diff --git a/linux/nginx/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/rtmp-hls/sources.list.d/sources.sid.list deleted file mode 100644 index 677a95436..000000000 --- a/linux/nginx/rtmp-hls/sources.list.d/sources.sid.list +++ /dev/null @@ -1,19 +0,0 @@ -#main -deb http://ftp.ru.debian.org/debian/ sid main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ sid main contrib non-free -deb http://ftp.ru.debian.org/debian/ testing-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ testing-updates main contrib non-free -deb http://ftp.ru.debian.org/debian/ testing-proposed-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ testing-proposed-updates main contrib non-free - -#backports -#deb http://ftp.ru.debian.org/debian/ testing-backports main contrib non-free -#deb-src http://ftp.ru.debian.org/debian/ testing-backports main contrib non-free - -#security -deb http://ftp.ru.debian.org/debian-security/ testing-security main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ testing-security main contrib non-free - -##multimedia -#deb http://ftp.ru.debian.org/debian-multimedia/ sid main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free diff --git a/linux/nginx/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/rtmp-hls/sources.list.d/sources.stretch.list deleted file mode 100644 index ff15154c3..000000000 --- a/linux/nginx/rtmp-hls/sources.list.d/sources.stretch.list +++ /dev/null @@ -1,19 +0,0 @@ -#main -deb http://ftp.ru.debian.org/debian/ stretch main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ stretch main contrib non-free -deb http://ftp.ru.debian.org/debian/ stretch-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ stretch-updates main contrib non-free -deb http://ftp.ru.debian.org/debian/ stretch-backports main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ stretch-backports main contrib non-free -deb http://ftp.ru.debian.org/debian/ stretch-proposed-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ stretch-proposed-updates main contrib non-free - -#security -deb http://ftp.ru.debian.org/debian-security/ stretch/updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ stretch/updates main contrib non-free - -##multimedia -#deb http://ftp.ru.debian.org/debian-multimedia/ stretch main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ stretch main non-free -#deb http://ftp.ru.debian.org/debian-multimedia/ stretch-backports main -#deb-src http://ftp.ru.debian.org/debian-multimedia/ stretch-backports main diff --git a/linux/php/latest/Dockerfile b/linux/php/latest/Dockerfile deleted file mode 100644 index b471eea3c..000000000 --- a/linux/php/latest/Dockerfile +++ /dev/null @@ -1,239 +0,0 @@ -FROM epicmorg/devel AS builder -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ENV BuildDocker true - -ARG BUILDS_DIR=/builds -ARG SRC_DIR=${BUILDS_DIR}/src -ARG EXPORT_DIR=${BUILDS_DIR}/export -ARG P4API_DIR=${SRC_DIR}/p4api -ARG P4PHP_DIR=${SRC_DIR}/p4php -ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 - -ARG P4API_VER=r20.1 -ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz - -ARG P4PHP_VER=r20.1 -ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz - -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 - -################################################################## -# Files and folders -################################################################## -RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} - -################################################################## -# Installing PHP7 -################################################################## -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - libmemcached-dev \ - smbclient libsmbclient libsmbclient-dev \ - php7.4 \ - php7.4-dev \ - php7.4-fpm \ - php7.4-cli \ - php7.4-cgi - -################################################################## -# preparing p4src -################################################################## -RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ - wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ - wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ - wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ - cd ${P4API_DIR} && \ - ls -las && \ - cd ${P4PHP_DIR} && \ - ls -las && \ - cd ${MAKE_DIR} && \ - ls -las && \ - cd ${SRC_DIR} && \ - ls -las - -################################################################## -# compilling p4src -################################################################## -RUN cd ${MAKE_DIR} && \ - ls -las && \ - phpize && \ - ./configure --with-perforce=${P4API_DIR} && \ - make && \ - make test && \ - make install && \ - cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} - - -################################################################## -# compilling smbclient -################################################################## -RUN pecl install smbclient && \ - cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} - -################################################################## -################################################################## -################################################################## - -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 -ARG PHP_VER=7.4 -ARG PHP_DIR=/etc/php/${PHP_VER} -ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini -ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini - -################################################################## -# Installing PHP7 -################################################################## -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - libmemcached-dev \ - php7.4 \ - php7.4-dev \ - php7.4-fpm \ - php7.4-cli \ - php7.4-cgi \ - php-pear \ - php7.4-gmp \ - php7.4-snmp \ - php7.4-ldap \ - php7.4-mail \ - php7.4-soap \ - php7.4-mysql \ - php7.4-memcached \ - php7.4-memcache \ - php7.4-igbinary \ - php7.4-interbase \ - php7.4-curl \ - php7.4-gd \ - php7.4-intl \ - php7.4-zip \ - php7.4-bcmath \ - php7.4-imap \ - php7.4-pspell \ - php7.4-sqlite3 \ - php7.4-tidy \ - php7.4-xmlrpc \ - php7.4-xml \ - php7.4-mbstring \ - php7.4-apcu \ - php7.4-common \ - php7.4-json \ - php7.4-readline \ - php7.4-enchant \ - php7.4-ssh2 \ - php7.4-oauth \ - php7.4-gmagick \ - php7.4-gnupg \ - php7.4-redis \ - smbclient libsmbclient \ -# php-smbclient \ - php7.4-yaml \ - php7.4-geoip \ - sendmail && \ - update-alternatives --set php /usr/bin/php7.4 && \ - phpenmod \ - snmp \ - gmp \ - calendar \ - ldap \ - curl \ - exif \ - ftp \ - fileinfo \ - gd \ - geoip \ - gnupg \ - iconv \ - imap \ - json \ - mbstring \ - memcached \ - mysqli \ - mysqlnd \ - oauth \ - pdo_mysql \ - pdo_sqlite \ - phar \ - posix \ - readline \ - redis \ - simplexml \ - sockets \ - sqlite3 \ - ssh2 \ - tokenizer \ - xml \ - xmlreader \ - xmlrpc \ - xmlwriter \ - xsl \ - yaml && \ - ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ - php -m && \ - php -v - -################################################################## -# Installing IOnCube addon -################################################################## -ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz -RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ - cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ -# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ - php -m && \ - php -v - -################################################################## -# Installing P4 addon -################################################################## -COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} -RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ - php -m && \ - php -v - -################################################################## -# Installing smbclient addon -################################################################## -COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} -RUN echo "extension=smbclient.so" > ${SMB_PHP_INI} && \ - ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ - ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ - ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ - php -m && \ - php -v - -################################################################## -# Installing Composer addon -################################################################## -RUN cd /tmp && \ - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ - php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ - rm /tmp/composer-setup.php - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz - diff --git a/linux/php/latest/Makefile b/linux/php/latest/Makefile deleted file mode 100644 index 60bfd9c5c..000000000 --- a/linux/php/latest/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: php -php: - docker build --compress -t epicmorg/php:latest . - docker push epicmorg/php:latest diff --git a/linux/php/php7.2/Dockerfile b/linux/php/php7.2/Dockerfile deleted file mode 100644 index e14d1cf5f..000000000 --- a/linux/php/php7.2/Dockerfile +++ /dev/null @@ -1,217 +0,0 @@ -FROM epicmorg/devel AS builder -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ENV BuildDocker true - -ARG BUILDS_DIR=/builds -ARG SRC_DIR=${BUILDS_DIR}/src -ARG EXPORT_DIR=${BUILDS_DIR}/export -ARG P4API_DIR=${SRC_DIR}/p4api -ARG P4PHP_DIR=${SRC_DIR}/p4php -ARG MAKE_DIR=${SRC_DIR}/p4php-7.2 - -ARG P4API_VER=r20.1 -ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz - -ARG P4PHP_VER=r20.1 -ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz - -ARG P4MODULE_PATH=/usr/lib/php/20170718 - -################################################################## -# Files and folders -################################################################## -RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} - -################################################################## -# Installing PHP7 -################################################################## -#installing php repo -RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' - -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - libmemcached-dev \ - php7.2 \ - php7.2-dev \ - php7.2-fpm \ - php7.2-cli \ - php7.2-cgi - -################################################################## -# preparing p4src -################################################################## -RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ - wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ - wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ - wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ - cd ${P4API_DIR} && \ - ls -las && \ - cd ${P4PHP_DIR} && \ - ls -las && \ - cd ${MAKE_DIR} && \ - ls -las && \ - cd ${SRC_DIR} && \ - ls -las - -################################################################## -# compilling p4src -################################################################## -RUN cd ${MAKE_DIR} && \ - ls -las && \ - phpize && \ - ./configure --with-perforce=${P4API_DIR} && \ - make && \ - make test && \ - make install && \ - cp ${P4MODULE_PATH}/perforce.so ${EXPORT_DIR} - - -################################################################## -################################################################## -################################################################## - -FROM epicmorg/prod -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -ARG PHP_MODULE_PATH=/usr/lib/php/20170718 -ARG PHP_VER=7.2 -ARG PHP_DIR=/etc/php/${PHP_VER} -ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini - -################################################################## -# Installing PHP7 -################################################################## -#installing php repo -RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' - -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - libmemcached-dev \ - php7.2-ldap \ - php7.2-dev \ - php7.2 \ - php7.2-mail \ - php7.2-mailparse \ - php7.2-soap \ - php7.2-mysql \ - php7.2-curl \ - php7.2-gd \ - php7.2-intl \ - php7.2-zip \ - php7.2-bcmath \ - php7.2-fpm \ - php7.2-imap \ - php7.2-pspell \ - php7.2-recode \ - php7.2-sqlite3 \ - php7.2-tidy \ - php7.2-xmlrpc \ - php7.2-xml \ - php7.2-mbstring \ - php7.2-gettext \ - php7.2-apcu \ - php7.2-cli \ - php7.2-common \ - php7.2-cgi \ - php7.2-json \ - php7.2-readline \ - php7.2-enchant \ - php7.2-ssh2 \ - php7.2-oauth \ - php7.2-gmagick \ - php7.2-redis \ - php7.2-smbclient \ - php7.2-yaml \ - php7.2-geoip \ - sendmail && \ - phpenmod \ - calendar \ - ldap \ - curl \ - exif \ - ftp \ - fileinfo \ - gd \ - geoip \ - iconv \ - imap \ - json \ - mbstring \ - mysqli \ - mysqlnd \ - oauth \ - pdo_mysql \ - pdo_sqlite \ - phar \ - posix \ - readline \ - redis \ - simplexml \ - sockets \ - sqlite3 \ - ssh2 \ - tokenizer \ - xml \ - xmlreader \ - xmlrpc \ - xmlwriter \ - xsl \ - yaml && \ - ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ - php -m && \ - php -v - -################################################################## -# Installing IOnCube addon -################################################################## -ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz -RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ - cp /tmp/ioncube/ioncube_loader_lin_7.2.so ${PHP_MODULE_PATH} && \ -# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PHP_DIR}/apache2/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PHP_DIR}/cgi/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PHP_DIR}/cli/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PHP_DIR}/fpm/php.ini && \ - php -m && \ - php -v - -################################################################## -# Installing P4 addon -################################################################## -COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} -RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ - php -m && \ - php -v - -################################################################## -# Installing Composer addon -################################################################## -RUN cd /tmp && \ - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ - php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ - rm /tmp/composer-setup.php - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz - diff --git a/linux/php/php7.2/Makefile b/linux/php/php7.2/Makefile deleted file mode 100644 index 388f809e6..000000000 --- a/linux/php/php7.2/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: php -php: - docker build --compress -t epicmorg/php:php7.2 . - docker push epicmorg/php:php7.2 diff --git a/linux/php/php7.3/Dockerfile b/linux/php/php7.3/Dockerfile deleted file mode 100644 index 74d1436f6..000000000 --- a/linux/php/php7.3/Dockerfile +++ /dev/null @@ -1,225 +0,0 @@ -FROM epicmorg/devel AS builder -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ENV BuildDocker true - -ARG BUILDS_DIR=/builds -ARG SRC_DIR=${BUILDS_DIR}/src -ARG EXPORT_DIR=${BUILDS_DIR}/export -ARG P4API_DIR=${SRC_DIR}/p4api -ARG P4PHP_DIR=${SRC_DIR}/p4php -ARG MAKE_DIR=${SRC_DIR}/p4php-7.3 - -ARG P4API_VER=r20.1 -ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz - -ARG P4PHP_VER=r20.1 -ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz - -ARG P4MODULE_PATH=/usr/lib/php/20180731 - -################################################################## -# Files and folders -################################################################## -RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} - -################################################################## -# Installing PHP7 -################################################################## -#installing php repo -RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' - -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - libmemcached-dev \ - php7.3 \ - php7.3-dev \ - php7.3-fpm \ - php7.3-cli \ - php7.3-cgi - -################################################################## -# preparing p4src -################################################################## -RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ - wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ - wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ - wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ - cd ${P4API_DIR} && \ - ls -las && \ - cd ${P4PHP_DIR} && \ - ls -las && \ - cd ${MAKE_DIR} && \ - ls -las && \ - cd ${SRC_DIR} && \ - ls -las - -################################################################## -# compilling p4src -################################################################## -RUN cd ${MAKE_DIR} && \ - ls -las && \ - phpize && \ - ./configure --with-perforce=${P4API_DIR} && \ - make && \ - make test && \ - make install && \ - cp ${P4MODULE_PATH}/perforce.so ${EXPORT_DIR} - -################################################################## -################################################################## -################################################################## - -FROM epicmorg/prod -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -ARG PHP_MODULE_PATH=/usr/lib/php/20180731 -ARG PHP_VER=7.3 -ARG PHP_DIR=/etc/php/${PHP_VER} -ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini - -################################################################## -# Installing PHP7 -################################################################## -#installing php repo -RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' - -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - libmemcached-dev \ - php7.3-gmp \ - php7.3-snmp \ - php7.3-ldap \ - php7.3-dev \ - php7.3 \ - php7.3-mail \ - php7.3-mailparse \ - php7.3-soap \ - php7.3-mysql \ - php7.3-memcached \ - php7.3-memcache \ - php7.3-igbinary \ - php7.3-curl \ - php7.3-gd \ - php7.3-intl \ - php7.3-zip \ - php7.3-bcmath \ - php7.3-fpm \ - php7.3-imap \ - php7.3-pspell \ - php7.3-recode \ - php7.3-sqlite3 \ - php7.3-tidy \ - php7.3-xmlrpc \ - php7.3-xml \ - php7.3-mbstring \ - php7.3-gettext \ - php7.3-apcu \ - php7.3-cli \ - php7.3-common \ - php7.3-cgi \ - php7.3-json \ - php7.3-readline \ - php7.3-enchant \ - php7.3-ssh2 \ - php7.3-oauth \ - php7.3-gmagick \ - php7.3-redis \ - php7.3-smbclient \ - php7.3-yaml \ - php7.3-geoip \ - sendmail && \ - phpenmod \ - snmp \ - gmp \ - calendar \ - ldap \ - curl \ - exif \ - ftp \ - fileinfo \ - gd \ - geoip \ - gettext \ - iconv \ - imap \ - json \ - mbstring \ - memcached \ - mysqli \ - mysqlnd \ - oauth \ - pdo_mysql \ - pdo_sqlite \ - phar \ - posix \ - readline \ - redis \ - simplexml \ - sockets \ - sqlite3 \ - ssh2 \ - tokenizer \ - xml \ - xmlreader \ - xmlrpc \ - xmlwriter \ - xsl \ - yaml && \ - ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ - php -m && \ - php -v - -################################################################## -# Installing IOnCube addon -################################################################## -ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz -RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ - cp /tmp/ioncube/ioncube_loader_lin_7.3.so ${PHP_MODULE_PATH} && \ -# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${PHP_DIR}/apache2/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${PHP_DIR}/cgi/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${PHP_DIR}/cli/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${PHP_DIR}/fpm/php.ini && \ - php -m && \ - php -v - -################################################################## -# Installing P4 addon -################################################################## -COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} -RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ - php -m && \ - php -v - -################################################################## -# Installing Composer addon -################################################################## -RUN cd /tmp && \ - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ - php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ - rm /tmp/composer-setup.php - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz - diff --git a/linux/php/php7.3/Makefile b/linux/php/php7.3/Makefile deleted file mode 100644 index 00f21a98e..000000000 --- a/linux/php/php7.3/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: php -php: - docker build --compress -t epicmorg/php:php7.3 . - docker push epicmorg/php:php7.3 diff --git a/linux/php/php7.4/Dockerfile b/linux/php/php7.4/Dockerfile deleted file mode 100644 index b471eea3c..000000000 --- a/linux/php/php7.4/Dockerfile +++ /dev/null @@ -1,239 +0,0 @@ -FROM epicmorg/devel AS builder -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ENV BuildDocker true - -ARG BUILDS_DIR=/builds -ARG SRC_DIR=${BUILDS_DIR}/src -ARG EXPORT_DIR=${BUILDS_DIR}/export -ARG P4API_DIR=${SRC_DIR}/p4api -ARG P4PHP_DIR=${SRC_DIR}/p4php -ARG MAKE_DIR=${SRC_DIR}/p4php-7.4 - -ARG P4API_VER=r20.1 -ARG P4API_URL=https://www.perforce.com/downloads/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz - -ARG P4PHP_VER=r20.1 -ARG P4PHP_URL=https://www.perforce.com/downloads/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz - -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 - -################################################################## -# Files and folders -################################################################## -RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR} - -################################################################## -# Installing PHP7 -################################################################## -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - libmemcached-dev \ - smbclient libsmbclient libsmbclient-dev \ - php7.4 \ - php7.4-dev \ - php7.4-fpm \ - php7.4-cli \ - php7.4-cgi - -################################################################## -# preparing p4src -################################################################## -RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \ - wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ - wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \ - wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \ - cd ${P4API_DIR} && \ - ls -las && \ - cd ${P4PHP_DIR} && \ - ls -las && \ - cd ${MAKE_DIR} && \ - ls -las && \ - cd ${SRC_DIR} && \ - ls -las - -################################################################## -# compilling p4src -################################################################## -RUN cd ${MAKE_DIR} && \ - ls -las && \ - phpize && \ - ./configure --with-perforce=${P4API_DIR} && \ - make && \ - make test && \ - make install && \ - cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} - - -################################################################## -# compilling smbclient -################################################################## -RUN pecl install smbclient && \ - cp ${PHP_MODULE_PATH}/smbclient.so ${EXPORT_DIR} - -################################################################## -################################################################## -################################################################## - -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -ARG PHP_MODULE_PATH=/usr/lib/php/20190902 -ARG PHP_VER=7.4 -ARG PHP_DIR=/etc/php/${PHP_VER} -ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini -ARG SMB_PHP_INI=${PHP_DIR}/mods-available/smbclient.ini - -################################################################## -# Installing PHP7 -################################################################## -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - libmemcached-dev \ - php7.4 \ - php7.4-dev \ - php7.4-fpm \ - php7.4-cli \ - php7.4-cgi \ - php-pear \ - php7.4-gmp \ - php7.4-snmp \ - php7.4-ldap \ - php7.4-mail \ - php7.4-soap \ - php7.4-mysql \ - php7.4-memcached \ - php7.4-memcache \ - php7.4-igbinary \ - php7.4-interbase \ - php7.4-curl \ - php7.4-gd \ - php7.4-intl \ - php7.4-zip \ - php7.4-bcmath \ - php7.4-imap \ - php7.4-pspell \ - php7.4-sqlite3 \ - php7.4-tidy \ - php7.4-xmlrpc \ - php7.4-xml \ - php7.4-mbstring \ - php7.4-apcu \ - php7.4-common \ - php7.4-json \ - php7.4-readline \ - php7.4-enchant \ - php7.4-ssh2 \ - php7.4-oauth \ - php7.4-gmagick \ - php7.4-gnupg \ - php7.4-redis \ - smbclient libsmbclient \ -# php-smbclient \ - php7.4-yaml \ - php7.4-geoip \ - sendmail && \ - update-alternatives --set php /usr/bin/php7.4 && \ - phpenmod \ - snmp \ - gmp \ - calendar \ - ldap \ - curl \ - exif \ - ftp \ - fileinfo \ - gd \ - geoip \ - gnupg \ - iconv \ - imap \ - json \ - mbstring \ - memcached \ - mysqli \ - mysqlnd \ - oauth \ - pdo_mysql \ - pdo_sqlite \ - phar \ - posix \ - readline \ - redis \ - simplexml \ - sockets \ - sqlite3 \ - ssh2 \ - tokenizer \ - xml \ - xmlreader \ - xmlrpc \ - xmlwriter \ - xsl \ - yaml && \ - ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ - php -m && \ - php -v - -################################################################## -# Installing IOnCube addon -################################################################## -ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz -RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ - cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ -# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/apache2/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ - php -m && \ - php -v - -################################################################## -# Installing P4 addon -################################################################## -COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} -RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ - php -m && \ - php -v - -################################################################## -# Installing smbclient addon -################################################################## -COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} -RUN echo "extension=smbclient.so" > ${SMB_PHP_INI} && \ - ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cgi/conf.d/smbclient.ini && \ - ln -sf ${SMB_PHP_INI} ${PHP_DIR}/cli/conf.d/smbclient.ini && \ - ln -sf ${SMB_PHP_INI} ${PHP_DIR}/fpm/conf.d/smbclient.ini && \ - php -m && \ - php -v - -################################################################## -# Installing Composer addon -################################################################## -RUN cd /tmp && \ - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ - php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ - rm /tmp/composer-setup.php - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/ioncube/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/ioncube.tar.gz - diff --git a/linux/php/php7.4/Makefile b/linux/php/php7.4/Makefile deleted file mode 100644 index aad7364c2..000000000 --- a/linux/php/php7.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: php -php: - docker build --compress -t epicmorg/php:php7.4 . - docker push epicmorg/php:php7.4 diff --git a/linux/postgres/10/Dockerfile b/linux/postgres/10/Dockerfile deleted file mode 100644 index 02682bed4..000000000 --- a/linux/postgres/10/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -#################################################################################################################################### -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -#################################################################################################################################### - -RUN groupadd -r postgres && useradd -r -g postgres postgres - -#################################################################################################################################### -# grab gosu for easy step-down from root -#################################################################################################################################### - -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl - -#################################################################################################################################### -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -#################################################################################################################################### - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -#################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/10/p/postgresql-10/ -#################################################################################################################################### -ENV PG_MAJOR 10 - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] diff --git a/linux/postgres/10/Makefile b/linux/postgres/10/Makefile deleted file mode 100644 index 26d5594b1..000000000 --- a/linux/postgres/10/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:10 . - docker push epicmorg/postgres:10 diff --git a/linux/postgres/11/Dockerfile b/linux/postgres/11/Dockerfile deleted file mode 100644 index dbee12bf6..000000000 --- a/linux/postgres/11/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -#################################################################################################################################### -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -#################################################################################################################################### - -RUN groupadd -r postgres && useradd -r -g postgres postgres - -#################################################################################################################################### -# grab gosu for easy step-down from root -#################################################################################################################################### - -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl - -#################################################################################################################################### -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -#################################################################################################################################### - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -#################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/11/p/postgresql-11/ -#################################################################################################################################### -ENV PG_MAJOR 11 - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] diff --git a/linux/postgres/11/Makefile b/linux/postgres/11/Makefile deleted file mode 100644 index b3239da7d..000000000 --- a/linux/postgres/11/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:11 . - docker push epicmorg/postgres:11 diff --git a/linux/postgres/11/docker-entrypoint.sh b/linux/postgres/11/docker-entrypoint.sh deleted file mode 100755 index 8011908ac..000000000 --- a/linux/postgres/11/docker-entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -if [ "$1" = 'postgres' ]; then - chown -R postgres "$PGDATA" - - if [ -z "$(ls -A "$PGDATA")" ]; then - gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - - { echo; echo 'host all all 0.0.0.0/0 trust'; } >> "$PGDATA"/pg_hba.conf - - if [ -d /docker-entrypoint-initdb.d ]; then - for f in /docker-entrypoint-initdb.d/*.sh; do - [ -f "$f" ] && . "$f" - done - fi - fi - - exec gosu postgres "$@" -fi - -exec "$@" diff --git a/linux/postgres/12/Dockerfile b/linux/postgres/12/Dockerfile deleted file mode 100644 index 37bdbc0ed..000000000 --- a/linux/postgres/12/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -#################################################################################################################################### -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -#################################################################################################################################### - -RUN groupadd -r postgres && useradd -r -g postgres postgres - -#################################################################################################################################### -# grab gosu for easy step-down from root -#################################################################################################################################### - -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl - -#################################################################################################################################### -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -#################################################################################################################################### - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -#################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/12/p/postgresql-12/ -#################################################################################################################################### -ENV PG_MAJOR 12 - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] diff --git a/linux/postgres/12/Makefile b/linux/postgres/12/Makefile deleted file mode 100644 index 8c7a5103e..000000000 --- a/linux/postgres/12/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:12 . - docker push epicmorg/postgres:12 diff --git a/linux/postgres/12/docker-entrypoint.sh b/linux/postgres/12/docker-entrypoint.sh deleted file mode 100755 index 8011908ac..000000000 --- a/linux/postgres/12/docker-entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -if [ "$1" = 'postgres' ]; then - chown -R postgres "$PGDATA" - - if [ -z "$(ls -A "$PGDATA")" ]; then - gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - - { echo; echo 'host all all 0.0.0.0/0 trust'; } >> "$PGDATA"/pg_hba.conf - - if [ -d /docker-entrypoint-initdb.d ]; then - for f in /docker-entrypoint-initdb.d/*.sh; do - [ -f "$f" ] && . "$f" - done - fi - fi - - exec gosu postgres "$@" -fi - -exec "$@" diff --git a/linux/postgres/8.2/Dockerfile b/linux/postgres/8.2/Dockerfile deleted file mode 100644 index 480d00bbc..000000000 --- a/linux/postgres/8.2/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -#################################################################################################################################### -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -#################################################################################################################################### - -RUN groupadd -r postgres && useradd -r -g postgres postgres - -#################################################################################################################################### -# grab gosu for easy step-down from root -#################################################################################################################################### - -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl - -#################################################################################################################################### -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -#################################################################################################################################### - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -#################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/8.2/p/postgresql-8.2/ -#################################################################################################################################### -ENV PG_MAJOR 8.2 - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] diff --git a/linux/postgres/8.2/Makefile b/linux/postgres/8.2/Makefile deleted file mode 100644 index 0d259a8fd..000000000 --- a/linux/postgres/8.2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:8.2 . - docker push epicmorg/postgres:8.2 - diff --git a/linux/postgres/8.2/docker-entrypoint.sh b/linux/postgres/8.2/docker-entrypoint.sh deleted file mode 100755 index 8011908ac..000000000 --- a/linux/postgres/8.2/docker-entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -if [ "$1" = 'postgres' ]; then - chown -R postgres "$PGDATA" - - if [ -z "$(ls -A "$PGDATA")" ]; then - gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - - { echo; echo 'host all all 0.0.0.0/0 trust'; } >> "$PGDATA"/pg_hba.conf - - if [ -d /docker-entrypoint-initdb.d ]; then - for f in /docker-entrypoint-initdb.d/*.sh; do - [ -f "$f" ] && . "$f" - done - fi - fi - - exec gosu postgres "$@" -fi - -exec "$@" diff --git a/linux/postgres/8.3/Dockerfile b/linux/postgres/8.3/Dockerfile deleted file mode 100644 index f28443396..000000000 --- a/linux/postgres/8.3/Dockerfile +++ /dev/null @@ -1,61 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -#################################################################################################################################### -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -#################################################################################################################################### - -RUN groupadd -r postgres && useradd -r -g postgres postgres - -#################################################################################################################################### -# grab gosu for easy step-down from root -#################################################################################################################################### - -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl - -#################################################################################################################################### -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -#################################################################################################################################### - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -#################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/8.3/p/postgresql-8.3/ -#################################################################################################################################### -ENV PG_MAJOR 8.3 -ENV PG_VERSION 8.3 - - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] diff --git a/linux/postgres/8.3/Makefile b/linux/postgres/8.3/Makefile deleted file mode 100644 index 4ed0cf075..000000000 --- a/linux/postgres/8.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:8.3 . - docker push epicmorg/postgres:8.3 - diff --git a/linux/postgres/8.3/docker-entrypoint.sh b/linux/postgres/8.3/docker-entrypoint.sh deleted file mode 100755 index 8011908ac..000000000 --- a/linux/postgres/8.3/docker-entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -if [ "$1" = 'postgres' ]; then - chown -R postgres "$PGDATA" - - if [ -z "$(ls -A "$PGDATA")" ]; then - gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - - { echo; echo 'host all all 0.0.0.0/0 trust'; } >> "$PGDATA"/pg_hba.conf - - if [ -d /docker-entrypoint-initdb.d ]; then - for f in /docker-entrypoint-initdb.d/*.sh; do - [ -f "$f" ] && . "$f" - done - fi - fi - - exec gosu postgres "$@" -fi - -exec "$@" diff --git a/linux/postgres/8.4/Dockerfile b/linux/postgres/8.4/Dockerfile deleted file mode 100644 index 0dc019a3c..000000000 --- a/linux/postgres/8.4/Dockerfile +++ /dev/null @@ -1,61 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -#################################################################################################################################### -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -#################################################################################################################################### - -RUN groupadd -r postgres && useradd -r -g postgres postgres - -#################################################################################################################################### -# grab gosu for easy step-down from root -#################################################################################################################################### - -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl - -#################################################################################################################################### -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -#################################################################################################################################### - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -#################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/8.4/p/postgresql-8.4/ -#################################################################################################################################### -ENV PG_MAJOR 8.4 - - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] - diff --git a/linux/postgres/8.4/Makefile b/linux/postgres/8.4/Makefile deleted file mode 100644 index f13d9c1aa..000000000 --- a/linux/postgres/8.4/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:8.4 . - docker push epicmorg/postgres:8.4 - diff --git a/linux/postgres/8.4/docker-entrypoint.sh b/linux/postgres/8.4/docker-entrypoint.sh deleted file mode 100755 index 8011908ac..000000000 --- a/linux/postgres/8.4/docker-entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -if [ "$1" = 'postgres' ]; then - chown -R postgres "$PGDATA" - - if [ -z "$(ls -A "$PGDATA")" ]; then - gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - - { echo; echo 'host all all 0.0.0.0/0 trust'; } >> "$PGDATA"/pg_hba.conf - - if [ -d /docker-entrypoint-initdb.d ]; then - for f in /docker-entrypoint-initdb.d/*.sh; do - [ -f "$f" ] && . "$f" - done - fi - fi - - exec gosu postgres "$@" -fi - -exec "$@" diff --git a/linux/postgres/9.0/Dockerfile b/linux/postgres/9.0/Dockerfile deleted file mode 100644 index 518b49018..000000000 --- a/linux/postgres/9.0/Dockerfile +++ /dev/null @@ -1,61 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -#################################################################################################################################### -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -#################################################################################################################################### - -RUN groupadd -r postgres && useradd -r -g postgres postgres - -#################################################################################################################################### -# grab gosu for easy step-down from root -#################################################################################################################################### - -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl - -#################################################################################################################################### -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -#################################################################################################################################### - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -#################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/9.0/p/postgresql-9.0/ -#################################################################################################################################### -ENV PG_MAJOR 9.0 - - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] - diff --git a/linux/postgres/9.0/Makefile b/linux/postgres/9.0/Makefile deleted file mode 100644 index beb2ca99b..000000000 --- a/linux/postgres/9.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:9.0 . - docker push epicmorg/postgres:9.0 - diff --git a/linux/postgres/9.0/docker-entrypoint.sh b/linux/postgres/9.0/docker-entrypoint.sh deleted file mode 100755 index 8011908ac..000000000 --- a/linux/postgres/9.0/docker-entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -if [ "$1" = 'postgres' ]; then - chown -R postgres "$PGDATA" - - if [ -z "$(ls -A "$PGDATA")" ]; then - gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - - { echo; echo 'host all all 0.0.0.0/0 trust'; } >> "$PGDATA"/pg_hba.conf - - if [ -d /docker-entrypoint-initdb.d ]; then - for f in /docker-entrypoint-initdb.d/*.sh; do - [ -f "$f" ] && . "$f" - done - fi - fi - - exec gosu postgres "$@" -fi - -exec "$@" diff --git a/linux/postgres/9.1/Dockerfile b/linux/postgres/9.1/Dockerfile deleted file mode 100644 index 49ad56e2f..000000000 --- a/linux/postgres/9.1/Dockerfile +++ /dev/null @@ -1,61 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -#################################################################################################################################### -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -#################################################################################################################################### - -RUN groupadd -r postgres && useradd -r -g postgres postgres - -#################################################################################################################################### -# grab gosu for easy step-down from root -#################################################################################################################################### - -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl - -#################################################################################################################################### -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -#################################################################################################################################### - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -#################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/9.0/p/postgresql-9.0/ -#################################################################################################################################### -ENV PG_MAJOR 9.1 - - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] - diff --git a/linux/postgres/9.1/Makefile b/linux/postgres/9.1/Makefile deleted file mode 100644 index 5fa68bbe8..000000000 --- a/linux/postgres/9.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:9.1 . - docker push epicmorg/postgres:9.1 - diff --git a/linux/postgres/9.1/docker-entrypoint.sh b/linux/postgres/9.1/docker-entrypoint.sh deleted file mode 100755 index 8011908ac..000000000 --- a/linux/postgres/9.1/docker-entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -if [ "$1" = 'postgres' ]; then - chown -R postgres "$PGDATA" - - if [ -z "$(ls -A "$PGDATA")" ]; then - gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - - { echo; echo 'host all all 0.0.0.0/0 trust'; } >> "$PGDATA"/pg_hba.conf - - if [ -d /docker-entrypoint-initdb.d ]; then - for f in /docker-entrypoint-initdb.d/*.sh; do - [ -f "$f" ] && . "$f" - done - fi - fi - - exec gosu postgres "$@" -fi - -exec "$@" diff --git a/linux/postgres/9.2/Dockerfile b/linux/postgres/9.2/Dockerfile deleted file mode 100644 index d99fa5c81..000000000 --- a/linux/postgres/9.2/Dockerfile +++ /dev/null @@ -1,61 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -#################################################################################################################################### -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -#################################################################################################################################### - -RUN groupadd -r postgres && useradd -r -g postgres postgres - -#################################################################################################################################### -# grab gosu for easy step-down from root -#################################################################################################################################### - -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl - -#################################################################################################################################### -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -#################################################################################################################################### - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -#################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/9.2/p/postgresql-9.2/ -#################################################################################################################################### -ENV PG_MAJOR 9.2 - - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] - diff --git a/linux/postgres/9.2/Makefile b/linux/postgres/9.2/Makefile deleted file mode 100644 index 53533630e..000000000 --- a/linux/postgres/9.2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:9.2 . - docker push epicmorg/postgres:9.2 - diff --git a/linux/postgres/9.2/docker-entrypoint.sh b/linux/postgres/9.2/docker-entrypoint.sh deleted file mode 100755 index 8011908ac..000000000 --- a/linux/postgres/9.2/docker-entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -if [ "$1" = 'postgres' ]; then - chown -R postgres "$PGDATA" - - if [ -z "$(ls -A "$PGDATA")" ]; then - gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - - { echo; echo 'host all all 0.0.0.0/0 trust'; } >> "$PGDATA"/pg_hba.conf - - if [ -d /docker-entrypoint-initdb.d ]; then - for f in /docker-entrypoint-initdb.d/*.sh; do - [ -f "$f" ] && . "$f" - done - fi - fi - - exec gosu postgres "$@" -fi - -exec "$@" diff --git a/linux/postgres/9.3/Dockerfile b/linux/postgres/9.3/Dockerfile deleted file mode 100644 index d32d7f120..000000000 --- a/linux/postgres/9.3/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -#################################################################################################################################### -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -#################################################################################################################################### - -RUN groupadd -r postgres && useradd -r -g postgres postgres - -#################################################################################################################################### -# grab gosu for easy step-down from root -#################################################################################################################################### - -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl - -#################################################################################################################################### -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -#################################################################################################################################### - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -#################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/9.3/p/postgresql-9.3/ -#################################################################################################################################### -ENV PG_MAJOR 9.3 - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] diff --git a/linux/postgres/9.3/Makefile b/linux/postgres/9.3/Makefile deleted file mode 100644 index 6d67f1c37..000000000 --- a/linux/postgres/9.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:9.3 . - docker push epicmorg/postgres:9.3 - diff --git a/linux/postgres/9.3/docker-entrypoint.sh b/linux/postgres/9.3/docker-entrypoint.sh deleted file mode 100755 index 8011908ac..000000000 --- a/linux/postgres/9.3/docker-entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -if [ "$1" = 'postgres' ]; then - chown -R postgres "$PGDATA" - - if [ -z "$(ls -A "$PGDATA")" ]; then - gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - - { echo; echo 'host all all 0.0.0.0/0 trust'; } >> "$PGDATA"/pg_hba.conf - - if [ -d /docker-entrypoint-initdb.d ]; then - for f in /docker-entrypoint-initdb.d/*.sh; do - [ -f "$f" ] && . "$f" - done - fi - fi - - exec gosu postgres "$@" -fi - -exec "$@" diff --git a/linux/postgres/9.4/Dockerfile b/linux/postgres/9.4/Dockerfile deleted file mode 100644 index 6303faaab..000000000 --- a/linux/postgres/9.4/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -#################################################################################################################################### -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -#################################################################################################################################### - -RUN groupadd -r postgres && useradd -r -g postgres postgres - -#################################################################################################################################### -# grab gosu for easy step-down from root -#################################################################################################################################### - -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl - -#################################################################################################################################### -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -#################################################################################################################################### - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -#################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/9.4/p/postgresql-9.4/ -#################################################################################################################################### -ENV PG_MAJOR 9.4 - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] diff --git a/linux/postgres/9.4/Makefile b/linux/postgres/9.4/Makefile deleted file mode 100644 index a825612b1..000000000 --- a/linux/postgres/9.4/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:9.4 . - docker push epicmorg/postgres:9.4 diff --git a/linux/postgres/9.4/docker-entrypoint.sh b/linux/postgres/9.4/docker-entrypoint.sh deleted file mode 100755 index 8011908ac..000000000 --- a/linux/postgres/9.4/docker-entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -if [ "$1" = 'postgres' ]; then - chown -R postgres "$PGDATA" - - if [ -z "$(ls -A "$PGDATA")" ]; then - gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - - { echo; echo 'host all all 0.0.0.0/0 trust'; } >> "$PGDATA"/pg_hba.conf - - if [ -d /docker-entrypoint-initdb.d ]; then - for f in /docker-entrypoint-initdb.d/*.sh; do - [ -f "$f" ] && . "$f" - done - fi - fi - - exec gosu postgres "$@" -fi - -exec "$@" diff --git a/linux/postgres/9.5/Dockerfile b/linux/postgres/9.5/Dockerfile deleted file mode 100644 index 2e5b0b5bd..000000000 --- a/linux/postgres/9.5/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -#################################################################################################################################### -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -#################################################################################################################################### - -RUN groupadd -r postgres && useradd -r -g postgres postgres - -#################################################################################################################################### -# grab gosu for easy step-down from root -#################################################################################################################################### - -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl - -#################################################################################################################################### -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -#################################################################################################################################### - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -#################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/9.4/p/postgresql-9.4/ -#################################################################################################################################### -ENV PG_MAJOR 9.5 - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] diff --git a/linux/postgres/9.5/Makefile b/linux/postgres/9.5/Makefile deleted file mode 100644 index 93943e48d..000000000 --- a/linux/postgres/9.5/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:9.5 . - docker push epicmorg/postgres:9.5 diff --git a/linux/postgres/9.5/docker-entrypoint.sh b/linux/postgres/9.5/docker-entrypoint.sh deleted file mode 100755 index 8011908ac..000000000 --- a/linux/postgres/9.5/docker-entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -if [ "$1" = 'postgres' ]; then - chown -R postgres "$PGDATA" - - if [ -z "$(ls -A "$PGDATA")" ]; then - gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - - { echo; echo 'host all all 0.0.0.0/0 trust'; } >> "$PGDATA"/pg_hba.conf - - if [ -d /docker-entrypoint-initdb.d ]; then - for f in /docker-entrypoint-initdb.d/*.sh; do - [ -f "$f" ] && . "$f" - done - fi - fi - - exec gosu postgres "$@" -fi - -exec "$@" diff --git a/linux/postgres/9.6/Dockerfile b/linux/postgres/9.6/Dockerfile deleted file mode 100644 index db4cc69e0..000000000 --- a/linux/postgres/9.6/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -#################################################################################################################################### -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -#################################################################################################################################### - -RUN groupadd -r postgres && useradd -r -g postgres postgres - -#################################################################################################################################### -# grab gosu for easy step-down from root -#################################################################################################################################### - -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl - -#################################################################################################################################### -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -#################################################################################################################################### - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -#################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/9.6/p/postgresql-9.6/ -#################################################################################################################################### -ENV PG_MAJOR 9.6 - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] diff --git a/linux/postgres/9.6/Makefile b/linux/postgres/9.6/Makefile deleted file mode 100644 index 5fc65e35e..000000000 --- a/linux/postgres/9.6/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:9.6 . - docker push epicmorg/postgres:9.6 diff --git a/linux/postgres/9.6/docker-entrypoint.sh b/linux/postgres/9.6/docker-entrypoint.sh deleted file mode 100755 index 8011908ac..000000000 --- a/linux/postgres/9.6/docker-entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -if [ "$1" = 'postgres' ]; then - chown -R postgres "$PGDATA" - - if [ -z "$(ls -A "$PGDATA")" ]; then - gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - - { echo; echo 'host all all 0.0.0.0/0 trust'; } >> "$PGDATA"/pg_hba.conf - - if [ -d /docker-entrypoint-initdb.d ]; then - for f in /docker-entrypoint-initdb.d/*.sh; do - [ -f "$f" ] && . "$f" - done - fi - fi - - exec gosu postgres "$@" -fi - -exec "$@" diff --git a/linux/postgres/Dockerfile.template b/linux/postgres/Dockerfile.template deleted file mode 100644 index 9d86078a9..000000000 --- a/linux/postgres/Dockerfile.template +++ /dev/null @@ -1,44 +0,0 @@ -# vim:set ft=dockerfile: -FROM debian:wheezy - -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -RUN groupadd -r postgres && useradd -r -g postgres postgres - -# grab gosu for easy step-down from root -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.1/gosu' \ - && chmod +x /usr/local/bin/gosu \ - && apt-get purge -y --auto-remove curl - -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver pgp.mit.edu --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -ENV PG_MAJOR %%PG_MAJOR%% -ENV PG_VERSION %%PG_VERSION%% - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR=$PG_VERSION \ - postgresql-contrib-$PG_MAJOR=$PG_VERSION \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] diff --git a/linux/postgres/docker-entrypoint.sh b/linux/postgres/docker-entrypoint.sh deleted file mode 100755 index 8011908ac..000000000 --- a/linux/postgres/docker-entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -if [ "$1" = 'postgres' ]; then - chown -R postgres "$PGDATA" - - if [ -z "$(ls -A "$PGDATA")" ]; then - gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - - { echo; echo 'host all all 0.0.0.0/0 trust'; } >> "$PGDATA"/pg_hba.conf - - if [ -d /docker-entrypoint-initdb.d ]; then - for f in /docker-entrypoint-initdb.d/*.sh; do - [ -f "$f" ] && . "$f" - done - fi - fi - - exec gosu postgres "$@" -fi - -exec "$@" diff --git a/linux/postgres/generate-stackbrew-library.sh b/linux/postgres/generate-stackbrew-library.sh deleted file mode 100755 index 230f74767..000000000 --- a/linux/postgres/generate-stackbrew-library.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -set -e - -declare -A aliases -aliases=( - [9.3]='9 latest' - [8.4]='8' -) - -cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" - -versions=( */ ) -versions=( "${versions[@]%/}" ) -url='git://github.com/docker-library/postgres' - -echo '# maintainer: InfoSiftr (@infosiftr)' - -for version in "${versions[@]}"; do - commit="$(git log -1 --format='format:%H' "$version")" - fullVersion="$(grep -m1 'ENV PG_VERSION ' "$version/Dockerfile" | cut -d' ' -f3 | cut -d- -f1 | sed 's/~/-/g')" - versionAliases=( $fullVersion $version ${aliases[$version]} ) - - echo - for va in "${versionAliases[@]}"; do - echo "$va: ${url}@${commit} $version" - done -done diff --git a/linux/postgres/latest/Dockerfile b/linux/postgres/latest/Dockerfile deleted file mode 100644 index 37bdbc0ed..000000000 --- a/linux/postgres/latest/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -#################################################################################################################################### -# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added -#################################################################################################################################### - -RUN groupadd -r postgres && useradd -r -g postgres postgres - -#################################################################################################################################### -# grab gosu for easy step-down from root -#################################################################################################################################### - -RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* \ - && curl -o /usr/local/bin/gosu -SL 'https://github.com/tianon/gosu/releases/download/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl - -#################################################################################################################################### -# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default -#################################################################################################################################### - -RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \ - && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 -ENV LANG en_US.utf8 - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8 - -#################################################################################################################################### -# http://apt.postgresql.org/pub/repos/apt/pool/12/p/postgresql-12/ -#################################################################################################################################### -ENV PG_MAJOR 12 - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list && \ - echo 'deb http://apt.postgresql.org/pub/repos/apt/ sid-pgdg-testing main' $PG_MAJOR >> /etc/apt/sources.list.d/pgdg.list - -RUN apt-get update \ - && apt-get install -y postgresql-common \ - && sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \ - && apt-get install -y \ - postgresql-$PG_MAJOR \ - postgresql-contrib-$PG_MAJOR \ - && rm -rf /var/lib/apt/lists/* - -RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql - - -ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH -ENV PGDATA /var/lib/postgresql/data -VOLUME /var/lib/postgresql/data - -COPY ./docker-entrypoint.sh / - -ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 5432 -CMD ["postgres"] diff --git a/linux/postgres/latest/Makefile b/linux/postgres/latest/Makefile deleted file mode 100644 index 55729c4e9..000000000 --- a/linux/postgres/latest/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:latest . - docker push epicmorg/postgres:latest diff --git a/linux/postgres/latest/docker-entrypoint.sh b/linux/postgres/latest/docker-entrypoint.sh deleted file mode 100755 index 8011908ac..000000000 --- a/linux/postgres/latest/docker-entrypoint.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -if [ "$1" = 'postgres' ]; then - chown -R postgres "$PGDATA" - - if [ -z "$(ls -A "$PGDATA")" ]; then - gosu postgres initdb - - sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf - - { echo; echo 'host all all 0.0.0.0/0 trust'; } >> "$PGDATA"/pg_hba.conf - - if [ -d /docker-entrypoint-initdb.d ]; then - for f in /docker-entrypoint-initdb.d/*.sh; do - [ -f "$f" ] && . "$f" - done - fi - fi - - exec gosu postgres "$@" -fi - -exec "$@" diff --git a/linux/postgres/update.sh b/linux/postgres/update.sh deleted file mode 100755 index 649d71619..000000000 --- a/linux/postgres/update.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -set -e - -cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" - -versions=( "$@" ) -if [ ${#versions[@]} -eq 0 ]; then - versions=( */ ) -fi -versions=( "${versions[@]%/}" ) - -packagesUrl='http://apt.postgresql.org/pub/repos/apt/dists/wheezy-pgdg/main/binary-amd64/Packages' -packages="$(echo "$packagesUrl" | sed -r 's/[^a-zA-Z.-]+/-/g')" -curl -sSL "${packagesUrl}.bz2" | bunzip2 > "$packages" - -for version in "${versions[@]}"; do - fullVersion="$(grep -m1 -A10 "^Package: postgresql-$version\$" "$packages" | grep -m1 '^Version: ' | cut -d' ' -f2)" - ( - set -x - cp docker-entrypoint.sh Dockerfile.template "$version/" - mv "$version/Dockerfile.template" "$version/Dockerfile" - sed -i 's/%%PG_MAJOR%%/'$version'/g; s/%%PG_VERSION%%/'$fullVersion'/g' "$version/Dockerfile" - ) -done - -rm "$packages" diff --git a/linux/qbittorrent/latest/Makefile b/linux/qbittorrent/latest/Makefile deleted file mode 100644 index 0f3f4b602..000000000 --- a/linux/qbittorrent/latest/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: emgqb -emgqb: - docker build --compress -t epicmorg/qbittorrent:latest . - docker push epicmorg/qbittorrent:latest \ No newline at end of file diff --git a/linux/qbittorrent/stable/Makefile b/linux/qbittorrent/stable/Makefile deleted file mode 100644 index c5d44e370..000000000 --- a/linux/qbittorrent/stable/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: emgqb -emgqb: - docker build --compress -t epicmorg/qbittorrent:stable . - docker push epicmorg/qbittorrent:stable diff --git a/linux/qbittorrent/stable/docker-compose.yml b/linux/qbittorrent/stable/docker-compose.yml deleted file mode 100644 index 2979ec108..000000000 --- a/linux/qbittorrent/stable/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: '3.7' -services: - qbittorrent: - image: epicmorg/qbittorrent:latest - restart: always - container_name: qbittorrent - ports: - - "0.0.0.0:8282:8282" - volumes: - - /etc/localtime:/etc/localtime - - /etc/timezone:/etc/timezone - - /etc/letsencrypt:/etc/letsencrypt - - /opt/qbittorrent/profiles:/opt/qbittorrent/profiles - tmpfs: - - /tmp - environment: - - QBT_PROFILE_NAME=docker - diff --git a/linux/teamcity/agent/Dockerfile b/linux/teamcity/agent/Dockerfile deleted file mode 100644 index 5347ddb2d..000000000 --- a/linux/teamcity/agent/Dockerfile +++ /dev/null @@ -1,374 +0,0 @@ -FROM epicmorg/php:latest AS php74 -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# ARGuments -################################################################## -ENV BuildDocker true - -ARG P4MODULE_PATH=/usr/lib/php/20190902 - -################################################################## -################################################################## -################################################################## - -FROM epicmorg/devel:jdk11 -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# bullseye sources list -################################################################## -#COPY sources.bullseye.list /etc/apt/sources.list.d/sources.bullseye.list -RUN apt update && \ - apt autoremove -y && \ - apt dist-upgrade -y && \ - apt autoremove -y - -################################################################## -# teamcity minimal agent -################################################################## -LABEL dockerImage.teamcity.version="latest" \ - dockerImage.teamcity.buildNumber="latest" - -VOLUME /data/teamcity_agent/conf - -ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties -ENV LANG=C.UTF-8 -ENV GIT_SSH_VARIANT=ssh - -COPY run-agent.sh /run-agent.sh -RUN chmod +x /run-agent.sh && \ - sync - -COPY run-services.sh /run-services.sh -RUN chmod +x /run-services.sh && \ - sync - -ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip -RUN unzip -q /buildAgent.zip -d /opt/buildagent && \ - mv /opt/buildagent/conf /opt/buildagent/conf_dist && \ - rm -rfv /buildAgent.zip - -RUN useradd -m buildagent && \ - chmod +x /opt/buildagent/bin/*.sh && \ - chmod +x /run-agent.sh /run-services.sh && sync - -################################################################## -# teamcity dotnet+powershell setup -################################################################## -# Opt out of the telemetry feature -ENV DOTNET_CLI_TELEMETRY_OPTOUT=true - -# Disable first time experience -ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true - -# Configure Kestrel web server to bind to port 80 when present -ENV ASPNETCORE_URLS=http://+:80 - -# Enable detection of running in a container -ENV DOTNET_RUNNING_IN_CONTAINER=true - -# Enable correct mode for dotnet watch (only mode supported in a container) -ENV DOTNET_USE_POLLING_FILE_WATCHER=true - -# Skip extraction of XML docs - generally not useful within an image/container - helps perfomance -ENV NUGET_XMLDOC_MODE=skip - -#unofficial support of openssl1.1 instead of 1.0 [https://stackoverflow.com/questions/51901359] -ENV CLR_OPENSSL_VERSION_OVERRIDE=45 - -#Install packages -RUN curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - && \ - echo 'deb [arch=amd64,arm64,armhf] https://packages.microsoft.com/debian/10/prod buster main' > /etc/apt/sources.list.d/microsoft.dotnet.list && \ - apt-get update && \ - apt-get install -y --no-install-recommends --allow-unauthenticated \ - libc6 \ -# libgcc1 \ - libgssapi-krb5-2 \ - libicu63 \ - liblttng-ust0 \ - libssl1.1 \ - libstdc++6 \ - zlib1g \ - dotnet-sdk-3.1 \ - aspnetcore-runtime-3.1 \ - dotnet-runtime-3.1 \ - powershell - -# Trigger .NET CLI first run experience by running arbitrary cmd to populate local package cache -RUN ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0 && \ - ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libssl.so.1.0 && \ - dotnet help && \ - pwsh -v - -################################################################## -# teamcity docker setup -################################################################## - -#Install packages -RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ - echo 'deb https://download.docker.com/linux/debian buster test' > /etc/apt/sources.list.d/docker.list && \ - apt-cache policy docker-ce && \ - apt-get update && \ - apt-get install -y --no-install-recommends --allow-unauthenticated \ - docker-ce \ - docker-ce-cli \ - containerd.io systemd && \ - systemctl disable docker && \ - usermod -aG docker buildagent - -# A better fix for TW-52939 Dockerfile build fails because of aufs -VOLUME /var/lib/docker - -COPY run-docker.sh /services/run-docker.sh -RUN chmod +x /services/run-docker.sh && \ - sync - -################################################################## -# teamcity docker compose setup -################################################################## - -#Install packages -RUN export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` && \ - echo "Latest compose is: ${DOCKER_COMPOSE_VERSION}" && \ - curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \ - chmod +x /usr/local/bin/docker-compose - -################################################################## -# teamcity AMXXModX setup -################################################################## -# -# Reserved for future -# export AMXX_CSTRIKE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-cstrike-linux` && \ -# export AMXX_DOD_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-dod-linux` && \ -# export AMXX_ESF_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-esf-linux` && \ -# export AMXX_NS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-ns-linux` && \ -# export AMXX_TFC_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-tfc-linux` && \ -# export AMXX_TS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-base-linux` && \ -# -# Install packages -ENV AMXX_VERSION=1.9 -ENV AMXX_INSTALL_PATH=/opt/amxmodx/$AMXX_VERSION -ENV AMXX_BIN_PATH=$AMXX_INSTALL_PATH/scripting -ENV PATH=$PATH:$AMXX_BIN_PATH -ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$AMXX_BIN_PATH - -RUN export AMXX_BASE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-base-linux` && \ - mkdir -p $AMXX_INSTALL_PATH && \ - curl -SL https://www.amxmodx.org/amxxdrop/{$AMXX_VERSION}/{$AMXX_BASE_LATEST_VERSION} -o /tmp/amxx_base_latest.tar.gz && \ - cd /tmp && tar -zxf /tmp/amxx_base_latest.tar.gz && cd / && \ - mv -f /tmp/addons/amxmodx/* $AMXX_INSTALL_PATH && \ - chmod +x $AMXX_BIN_PATH/amxxpc && \ - chmod +x $AMXX_BIN_PATH/compile.sh - -################################################################## -# teamcity atlassian-sdk setup -################################################################## - -#Install packages -#RUN curl -SL https://packages.atlassian.com/atlassian-sdk-deb/debian/pool/contrib/a/atlassian-plugin-sdk/atlassian-plugin-sdk_8.0.16_all.deb -o /tmp/atlassian-plugin-sdk.deb && \ -# dpkg -i /tmp/atlassian-plugin-sdk.deb - -############################### -# https://community.atlassian.com/t5/Continuous-Delivery-questions/The-repository-https-packages-atlassian-com-atlassian-sdk-deb/qaq-p/1334014 -# -# https://community.developer.atlassian.com/t/the-repository-https-packages-atlassian-com-atlassian-sdk-deb-stable-release-is-not-signed/36901 -############################### -RUN curl -fsSL https://packages.atlassian.com/api/gpg/key/public | apt-key add - && \ - echo 'deb [trusted=yes] https://packages.atlassian.com/atlassian-sdk-deb stable contrib' > /etc/apt/sources.list.d/atlassian-sdk.list && \ - apt-get update --allow-insecure-repositories && \ - apt-get install -y --no-install-recommends --allow-unauthenticated \ - atlassian-plugin-sdk - -################################################################## -# Installing PHP7.4 -################################################################## -ENV PHP_MODULE_PATH=/usr/lib/php/20190902 -ENV PHP_VER=7.4 -ENV PHP_DIR=/etc/php/${PHP_VER} -ENV P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini - -#installing php repo -RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list' - -#installing apache2 repo -RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg -RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list' - -#Install base packages -RUN apt-get update && \ - apt-get install -y --allow-unauthenticated \ - libmemcached-dev \ - php7.4 \ - php7.4-dev \ - php7.4-fpm \ - php7.4-cli \ - php7.4-cgi \ - php-pear \ - php-gmp \ - php-snmp \ - php-ldap \ - php-mail \ - php-soap \ - php-mysql \ - php-memcached \ - php-memcache \ - php-igbinary \ - php-interbase \ - php-curl \ - php-gd \ - php-intl \ - php-zip \ - php-bcmath \ - php-imap \ - php-pspell \ - php-sqlite3 \ - php-tidy \ - php-xmlrpc \ - php-xml \ - php-mbstring \ - php-apcu \ - php-common \ - php-json \ - php-readline \ - php-enchant \ - php-ssh2 \ - php-oauth \ - php-gmagick \ - php-gnupg \ - php-redis \ - php-smbclient \ - php-yaml \ - php-geoip \ - sendmail && \ - phpenmod \ - snmp \ - gmp \ - calendar \ - ldap \ - curl \ - exif \ - ftp \ - fileinfo \ - gd \ - geoip \ - gnupg \ - iconv \ - imap \ - json \ - mbstring \ - memcached \ - mysqli \ - mysqlnd \ - oauth \ - pdo_mysql \ - pdo_sqlite \ - phar \ - posix \ - readline \ - redis \ - simplexml \ - sockets \ - sqlite3 \ - ssh2 \ - tokenizer \ - xml \ - xmlreader \ - xmlrpc \ - xmlwriter \ - xsl \ - yaml && \ - ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ - php -m && \ - php -v - -################################################################## -# Installing IOnCube addon -################################################################## -ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz -RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ - cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \ - echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \ - php -m && \ - php -v - -################################################################## -# Installing P4 addon -################################################################## -COPY --from=php74 ${PHP_MODULE_PATH}/perforce.so ${PHP_MODULE_PATH} -RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \ - ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \ - php -m && \ - php -v - - -################################################################## -# Installing Composer addon -################################################################## -RUN cd /tmp && \ - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ - php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ - rm /tmp/composer-setup.php && \ - composer global require elendev/nexus-composer-push && \ - composer - - - -################################################################## -# Node.js 15.x -################################################################## -RUN curl -sL https://deb.nodesource.com/setup_15.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn - -################################################################## -# steam runtime and ssdk -################################################################## -RUN cd / && \ - sudo mkdir valve && \ - cd valve && \ - sudo wget http://media.steampowered.com/client/runtime/steam-runtime-sdk_latest.tar.xz && \ - sudo tar xvf steam-runtime-sdk_latest.tar.xz && \ - sudo mv steam-runtime-sdk_2013-09-05 steam-runtime && \ - sudo chown root:root * -R && \ - cd steam-runtime && \ - printf '%s\n' 3 1 Y Y Y | ./setup.sh - -################################################################## -# Android SDK -################################################################## -RUN apt-get install -y -t sid --allow-unauthenticated \ - android-sdk \ - android-sdk-build-tools \ - android-sdk-platform-tools libsqlite3-0 sqlite3 && \ - echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > /usr/lib/android-sdk/licenses/android-sdk-license - -ENV ANDROID_HOME=/usr/lib/android-sdk -ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb && \ - rm -rfv /tmp/deb/* && \ - rm -rfv /tmp/composer-setup.php && \ - rm -rfv /tmp/amxx_base_latest.tar.gz && \ - rm -rfv /tmp/atlassian-plugin-sdk.deb && \ - rm -rfv /tmp/addons - -CMD ["/run-services.sh"] - -EXPOSE 9090 diff --git a/linux/teamcity/agent/Makefile b/linux/teamcity/agent/Makefile deleted file mode 100644 index a1e173ea9..000000000 --- a/linux/teamcity/agent/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: tca -tca: - docker build --compress -t epicmorg/teamcity-agent:latest . - docker push epicmorg/teamcity-agent:latest diff --git a/linux/teamcity/server/Makefile b/linux/teamcity/server/Makefile deleted file mode 100644 index ef347f552..000000000 --- a/linux/teamcity/server/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: tcs -tcs: - docker build --compress -t epicmorg/teamcity-server:latest . - docker push epicmorg/teamcity-server:latest diff --git a/linux/testrail/latest/Makefile b/linux/testrail/latest/Makefile deleted file mode 100644 index 6e602e8f8..000000000 --- a/linux/testrail/latest/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -all: tr - -tr: - docker build --compress -t epicmorg/testrail . - docker push epicmorg/testrail - diff --git a/linux/vk2discord/latest/Dockerfile b/linux/vk2discord/latest/Dockerfile deleted file mode 100644 index 75709c22f..000000000 --- a/linux/vk2discord/latest/Dockerfile +++ /dev/null @@ -1,44 +0,0 @@ -FROM epicmorg/devel AS builder -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -WORKDIR /tmp - -RUN git clone https://github.com/MrZillaGold/VK2Discord.git vk2discord - -FROM epicmorg/edge -LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" -ARG DEBIAN_FRONTEND=noninteractive - -################################################################## -# Node.js 14.x -################################################################## -RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ - echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y nodejs yarn - -################################################################## -# Installing vk2discord -################################################################## - -WORKDIR /usr/src/vk2discord - - -COPY --from=builder /tmp/vk2discord/package*.json /usr/src/vk2discord/ - -RUN npm install -g - -COPY --from=builder /tmp/vk2discord/* /usr/src/vk2discord/ - -################################################################## -# cleaninig up -################################################################## -RUN apt clean -y && \ - apt-get clean all && \ - apt autoclean -y && \ - rm -rfv /var/lib/apt/lists/* && \ - rm -rfv /var/cache/apt/archives/*.deb - -CMD npm start diff --git a/linux/vk2discord/latest/Makefile b/linux/vk2discord/latest/Makefile deleted file mode 100644 index 8d17ab096..000000000 --- a/linux/vk2discord/latest/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: vk2d - -vk2d: - docker build --compress -t epicmorg/vk2discord:latest . - docker push epicmorg/vk2discord diff --git a/linux/zabbix/agent/Makefile b/linux/zabbix/agent/Makefile deleted file mode 100644 index f10f5e9e0..000000000 --- a/linux/zabbix/agent/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: za -za: - docker build --compress -t epicmorg/zabbix-agent . - docker push epicmorg/zabbix-agent diff --git a/linux/zabbix/java-gateway/Makefile b/linux/zabbix/java-gateway/Makefile deleted file mode 100644 index 89dc801f9..000000000 --- a/linux/zabbix/java-gateway/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: zjg -zjg: - docker build --compress -t epicmorg/zabbix-java-gateway . - docker push epicmorg/zabbix-java-gateway diff --git a/linux/zabbix/proxy/Makefile b/linux/zabbix/proxy/Makefile deleted file mode 100644 index 33412b137..000000000 --- a/linux/zabbix/proxy/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: zp -zp: - docker build --compress -t epicmorg/zabbix-proxy-sqlite3 . - docker push epicmorg/zabbix-proxy-sqlite3 diff --git a/linux/zabbix/server/Makefile b/linux/zabbix/server/Makefile deleted file mode 100644 index d2e05ebda..000000000 --- a/linux/zabbix/server/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: zsm -zsm: - docker build --compress -t epicmorg/zabbix-server-mysql . - docker push epicmorg/zabbix-server-mysql diff --git a/linux/zabbix/web/Makefile b/linux/zabbix/web/Makefile deleted file mode 100644 index 50ef03ca7..000000000 --- a/linux/zabbix/web/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: zwam -zwam: - docker build --compress -t epicmorg/zabbix-web-apache-mysql . - docker push epicmorg/zabbix-web-apache-mysql - diff --git a/win32/epicmorg/prod/win-server-core/Makefile b/win32/epicmorg/prod/win-server-core/Makefile index 3e46b7059..bad6d73b5 100644 --- a/win32/epicmorg/prod/win-server-core/Makefile +++ b/win32/epicmorg/prod/win-server-core/Makefile @@ -1,5 +1,19 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/prod:win-server-core . - docker push epicmorg/prod:win-server-core +all: app +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/win32/epicmorg/prod/win-server-core/docker-compose.yml b/win32/epicmorg/prod/win-server-core/docker-compose.yml new file mode 100644 index 000000000..7be0cca18 --- /dev/null +++ b/win32/epicmorg/prod/win-server-core/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/prod:win-server-core" + build: + context: . diff --git a/win32/epicmorg/prod/win10/Makefile b/win32/epicmorg/prod/win10/Makefile index 090a3f7de..bad6d73b5 100644 --- a/win32/epicmorg/prod/win10/Makefile +++ b/win32/epicmorg/prod/win10/Makefile @@ -1,5 +1,19 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/prod:win10 . - docker push epicmorg/prod:win10 +all: app +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/win32/epicmorg/prod/win10/docker-compose.yml b/win32/epicmorg/prod/win10/docker-compose.yml new file mode 100644 index 000000000..847250482 --- /dev/null +++ b/win32/epicmorg/prod/win10/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/prod:win10" + build: + context: .